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

Я только что закончил изучать, как делать списки в 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 - удаление перекрывающихся списков
  • Python 2.7, создающий многомерный список
  • Удалить элемент из списка в Python, итерации по нему
  • Как получить список индексов ненулевых элементов в списке?
  • Как удалить эти дубликаты в списке (python)
  • Python: определить, являются ли все элементы списка одним и тем же элементом
  • Равномерно распределить список в python
  • Python - лучший язык программирования в мире.