Является ли itertools.combination () детерминированным? - PullRequest
0 голосов
/ 02 июня 2018

Определен ли порядок элементов, полученных с помощью itertools.combination ()?

В настоящее время я пишу сценарий, который создает слишком большое количество объектов с использованием itertools.combination, достаточно большой, чтобы я не смог сохранить его.все это в памяти.Для каждой комбинации есть функция, которая возвращает значение, которое я храню в массиве Numpy (так как они достаточно эффективны по памяти).У меня едва хватает памяти для хранения всех этих чисел.

Затем я перебираю эти числа и, если это интересный индекс, я снова запускаю itertools.combination с переменной counter, чтобы получить доступ к комбинации, которая вызвалаэтот результат (который занимает всего несколько секунд).

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

1 Ответ

0 голосов
/ 02 июня 2018

Из документов :

Комбинации выдаются в лексикографическом порядке сортировки.Таким образом, если входной повторяемый элемент отсортирован, комбинированные кортежи будут созданы в отсортированном порядке.

Элементы обрабатываются как уникальные в зависимости от их положения, а не от их значения.Поэтому, если входные элементы уникальны, повторных значений в каждой комбинации не будет.

...