打乱一个单词
我想知道怎么在Python里随机打乱一个单词的字母顺序。
比如,单词“cat”可能会变成“act”、“tac”或者“tca”。
我希望能做到这一点,不使用内置的函数。
7 个回答
4
return "".join(random.sample(word, len(word)))
用法如下:
import random
word = "Pocketknife"
print("".join(random.sample(word, len(word))))
>>> teenockpkfi
7
看看这个Fisher-Yates 洗牌算法。这个算法在空间和时间上都非常高效,而且实现起来也很简单。
10
import random
word = "cat"
shuffled = list(word)
random.shuffle(shuffled)
shuffled = ''.join(shuffled)
print(shuffled)
import random
shuffled = ''.join(random.sample(word, len(word)))
...或者用另一种方式来实现,这个灵感来自于 Dominic的回答...