关于python:随机列出单词而不重复它们

Listing words randomly without repeating them

我刚刚从《绝对初学者的python编程》一书中学习了如何在python中列出列表,遇到了一个挑战,要求随机列出单词而不重复它们。我一直在努力,因为这本书没有给你答案。到目前为止,这是我的代码:

1
2
3
4
5
6
7
WORDS = ("YOU","ARE","WHO","THINK")
for word in WORDS:
    newword=random.choice(WORDS)
    while newword==word is False:
          newword=random.choice(WORDS)
          word=newword
          print(word)

很明显,代码并没有像列表中的单词那样工作。


可以使用列表而不是元组随机播放。

1
2
3
4
5
import random
lst = ['WHO','YOU','THINK','ARE']
random.shuffle(lst)
for x in lst:
   print x

请参见此处的Q/A。将元组转换为列表:q/a

如果您坚持要有一个元组,那么整个代码是:

1
2
3
4
5
6
import random
tuple = ('WHO','YOU','THINK','ARE')
lst = list(tuple)
random.shuffle(lst)
for x in lst:
   print x


将打印的单词添加到不同的数组(例如"EDOCX1"(0)),并在每次打印另一个单词之前循环该数组。那不是表演,只是一个小单子…所以它应该工作得很好(没有代码示例,应该在初学者范围内进行)