Random.shuffle неожиданно не работает внутри цикла - PullRequest
1 голос
/ 01 ноября 2019

Random.shuffle неожиданно не работает внутри цикла, он всегда выдает один и тот же перетасованный список, но мне нужно 19 разных списков по порядку:

for i in range(19):
    random.seed() #random.randint(1, 50)
    random.shuffle(candidates_random_list)
    random.seed()
    candidates_full_list.append(candidates_random_list)
print('candidates_full_list ----- \n\n ')
pprint(candidates_full_list)

Я видел многоиз учебников и ожидаемого seed () решит это, но это, на мой взгляд, неправильное поведение. Каждый прогон тасуется, но не в цикле.

1 Ответ

3 голосов
/ 01 ноября 2019

shuffle на месте, и ваш список содержит 19 ссылок на один и тот же список, а не отдельные списки, полученные в результате каждого перемешивания.

Вместо этого сохраните копию перемешанного списка.

for i in range(19):
    random.shuffle(candidates_random_list)
    candidates_full_list.append(candidates_random_list[:])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...