Листинг слов случайным образом, не повторяя их

Я только что закончил изучать, как делать списки в python из книги «Программирование на Python для абсолютного новичка», и наткнулся на вызов, предлагающий случайным образом перечислить слова, не повторяя их . Я пытался это сделать, поскольку книга не дает вам ответа на него. Пока это мой код:

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) 

Очевидно, что код не работает, поскольку слова повторяются в списках.

2 Solutions collect form web for “Листинг слов случайным образом, не повторяя их”

Вы можете использовать shuffle со списком вместо кортежа.

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

См. Здесь Q / A. Чтобы преобразовать кортеж в список: Q / A

Весь код, если вы настаиваете на наличии кортежа:

 import random tuple = ('WHO','YOU','THINK','ARE') lst = list(tuple) random.shuffle(lst) for x in lst: print x 

Добавьте печатное слово в другой массив (например, «используемые usedwords ») и usedwords этот массив каждый раз, прежде чем печатать другое слово.
Thats not perfomant, но его небольшой список … так что он должен работать просто отлично
(нет примера кода, это должно быть в диапазоне новичков)

Python - лучший язык программирования в мире.