打乱一个单词

9 投票
7 回答
19152 浏览
提问于 2025-04-16 00:51

我想知道怎么在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的回答...

撰写回答