Предлагаемое решение. Исходя из ваших требований, список из 10 номеров уже выбран, и вы просто хотите иметь список, который будет содержать эти 10 номеров, перетасованных 1000 уникальными способами. Итак, ниже, у меня есть список из 10 чисел. Random.sample (num_list, 10) выберет эти 10 чисел наугад и создаст новый список. Поскольку список имеет только 10 номеров, он выбирает все 10 в случайном порядке и создает новый список. Он проверяет общий список ответов, чтобы узнать, был ли этот заказ выбран ранее. Если это не так, оно добавляет его в список. Это не было найдено это до 1000 уникальных заказов:
import random
num_list = [6, 9, 1000, 53, 321, 8, -5, 714, 0, 2120]
answer_list = []
while len(answer_list) != 1000:
new_sample = random.sample(num_list, 10)
if new_sample not in answer_list:
answer_list.append(new_sample)
Таким образом, после запуска сценария здесь последние 5 пунктов в списке и первые 5 пунктов в списке:
==== RESTART: C:/Users/Joe/Desktop/scripts/Stack_overflow/ransom.py ====
>>> answer_list[-5:]
[[0, 9, 8, 53, 321, 1000, -5, 6, 2120, 714],
[714, 0, 2120, 6, -5, 53, 8, 321, 9, 1000],
[6, -5, 53, 321, 0, 1000, 2120, 8, 9, 714],
[321, 53, 9, 8, 2120, 714, 0, 1000, -5, 6],
[1000, 53, 2120, 6, 8, 9, -5, 714, 321, 0]]
>>> answer_list[:5]
[[321, 9, 714, -5, 53, 6, 1000, 8, 0, 2120],
[0, 6, 2120, -5, 714, 9, 1000, 8, 53, 321],
[1000, 8, 9, 6, 53, 321, 2120, 714, 0, -5],
[9, 0, 321, 6, 714, 53, 1000, 2120, -5, 8],
[6, 1000, 321, 0, -5, 2120, 8, 714, 9, 53]]
>>>
['random.sample'] (https://docs.python.org/library/random.html#random.sample) – metatoaster
Почему вы используете и помечены перестановками? Перестановки не случайны. Что они должны делать со случайной выборкой? – TigerhawkT3
Я предполагаю, что он хотел получить 1000 случайных выборок из этого списка перестановок. – metatoaster