Я хочу проверить элементы чрезвычайно длинного (более миллиарда элементов) генератора для свойства. Очевидно, что невозможно проверить все элементы (это займет примерно 400 лет). В настоящее время они производятся по заказу. Для того, чтобы небольшой образец, который у меня будет время, чтобы проверить, чтобы быть более представительным из всего, я хотел бы получить доступ к генератору случайным образом.Рандомизировать генератор
Есть ли способ сделать это (как изменить его на list
и делать random.shuffle
невозможно)?
Я пытаюсь выбрать случайную выборку из itertools.combinations
результата большого входного набора:
itertools.combinations(a_large_set, 3)
Вы можете сделать генератор произвести детали в случайном порядке? Что вы на самом деле делаете с миллиардом элементов? Если вы дадите нам дополнительную информацию, мы сможем предоставить дополнительную помощь. Другим подходом было бы взять первые N элементов из генератора и выбрать случайное подмножество M из тех, которые будут проверены для свойства (при условии, что проверка свойства намного дороже, чем создание элементов в первую очередь). –
@TomDalton Я проверяю элементы, чтобы увидеть, есть ли у них определенный признак. Это гораздо более дорогая операция, чем что-либо еще в программе. Если все остальное не работает, я попытаюсь заставить генератор производить элементы в произвольном порядке. – rlms
Какой у вас генератор? Возможно, существует * другой подход. –