2014-10-29 53 views
0

所以我想从列表中拉出一个单词,然后我想混淆这个单词,所以我将不得不猜测混合单词是什么。一旦正确猜测,就会转到下一个单词。如何从列表中拉出一个单词然后将这个单词打乱?

我迄今为止代码:

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) 

回答

0

你并不需要导入洗牌它已经与随机

+0

我是python的新手。 – 2014-10-29 01:24:41

+0

好吧,这是完全正常的,然后它在开始时有点不同,但是如果你问我:)是一个不错的选择:)玩得开心 – 2014-10-29 01:37:32

0

PLS进口好心指出,shuffle()改变就地输入参数它将总是返回一个None

正如凯文建议,您可以通过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' 
+0

我如何打印出来?打印___? – 2014-10-29 01:31:48

+0

你可以使用很多方法,你可以通过'print'将它打印出来并保存到一个字符串中,然后转储到一个文本文件中。 – 2014-10-29 02:35:26

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) 
+0

这看起来好像会起作用,谢谢!我如何打印出来? – 2014-10-29 01:25:20

+0

使用'print(scrambled)'。在Python 3中,括号是强制性的,而在Python 2中它们是可选的(即,您可以在Python 2中编写'print scrambled')。 – Kevin 2014-10-29 01:30:50

0

尝试像

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

每个单词转换成列表的第一应用洗牌每个字之前。然后将它们加在一起

相关问题