如何从列表中拉出一个单词然后将该单词洗牌?

时间:2014-10-29 01:08:33

标签: python shuffle

所以我想从列表中拉出一个单词,然后我想混淆这个单词,所以我将不得不猜出混合单词是什么。一旦猜对了,就会转到下一个单词。

到目前为止我的代码:

import random

words = ['Jumble', 'Star', 'Candy', 'Wings', 'Power', 'String', 'Shopping', 'Blonde', 'Steak', 'Speakers', 'Case', 'Stubborn', 'Cat', 'Marker', 'Elevator', 'Taxi', 'Eight', 'Tomato', 'Penguin', 'Custard']

from random import shuffle
shuffle(words)

4 个答案:

答案 0 :(得分:0)

您无需导入已随机导入的随机播放

答案 1 :(得分:0)

请注意shuffle()更改输入参数就地,它将始终返回None

正如Kevin建议的那样,您可以按random.choice()选择一个随机单词,并按以下方式显示:

我认为你正在努力做到

sorted(words[2], key=lambda k: random.random())
# ['y', 'd', 'a', 'C', 'n']

您可以通过以下方式加入:

''.join(sorted(words[2], key=lambda k: random.random()))
# 'andCy'

答案 2 :(得分:0)

从代码开始:

import random

words = ['Jumble', 'Star', 'Candy', 'Wings', 'Power', 'String', 'Shopping', 'Blonde', 'Steak', 'Speakers', 'Case', 'Stubborn', 'Cat', 'Marker', 'Elevator', 'Taxi', 'Eight', 'Tomato', 'Penguin', 'Custard']

使用random.choice()获取单个字词:

chosen = random.choice(words)

如果您想要抓取多个单词并一次处理一个单词,则可以使用random.sample()代替。如果您要处理每个单词,可以使用已经完成的random.shuffle(),然后迭代words(使用for word in words: ...)。

最后,洗牌:

letters = list(chosen)  # list of all the letters in chosen, in order
random.shuffle(letters)
scrambled = ''.join(letters)

答案 3 :(得分:0)

尝试类似

的内容
for w in words:
    s = list(w)
    shuffle(s)
    print ''.join(s)

在将shuffle应用于每个单词之前,先将每个单词转换为列表。然后加入他们