@kyklaed

Случайное добавление в список с проверкой на одинаковые элементы, как это правильно сделать?

всем привет, суть вопроса в том что есть список со словами, надо из него в случайном порядке добавить элементы в другой список что бы они не повторялись.

import random
WORDS =("kot,"maga","lada","sobaka")
word = [] 
for i in range(len(WORDS)):
    word = random.choice (WORDS) 
    print(word)

я написал вот этот кусочек, тут создаю словарь, делаю итерацию по количеству слов в словаре, потом делаю рандом из словаря в пустой словарь. надо на этом этапе сделать проверку на добавление в пустой словарь с проверкой на одинаковые слова.
  • Вопрос задан
  • 297 просмотров
Решения вопроса 1
Обычно эту задачу решают не проверкой повторений, а просто сортируют список в случайном порядке и берут N нужных элементов с начала. Так они получаются случайными и гарантировано не повторяются.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
aRegius
@aRegius
Python Enthusiast
Привет.
Для подобных задач есть shuffle

>>> import random
>>> WORDS =["kot", "maga", "lada", "sobaka"]
>>> NEW_WORDS = WORDS[:]
>>> random.shuffle(NEW_WORDS)
>>> NEW_WORDS
['lada', 'maga', 'sobaka', 'kot']
Ответ написан
Комментировать
@fireSparrow
Я правильно понимаю, что вам нужно из имеющегося списка взять случайное количество случайных слов?

Тогда это можно сделать гораздо проще, без цикла:

import random

WORDS = ["kot", "maga", "lada", "sobaka"]

rand_num = random.randint(1, len(WORDS))
new_words = random.sample (WORDS, rand_num) 

print(new_words)


PS: И кстати, в питоне термин "словарь" имеет особый смысл. Не надо этим словом называть просто последовательность слов.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы