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

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