Найти n перестановок списка длины p python - PullRequest
0 голосов
/ 16 сентября 2018

Итак, у меня есть массив из около 40 элементов, и мне нужно найти n перестановок в списке.Я знаю, что могу использовать itertools.permutations, но это даст мне все 40!различные порядки, которые занимают больше времени.

Есть ли способ, которым я могу создать ровно n перестановок списка?

1 Ответ

0 голосов
/ 16 сентября 2018

itertools.permutations дает вам итератор для перестановок вашего списка.Вы можете извлекать значения одно за другим, функция ничего не вычисляет заранее.

Если вы просто хотите получить первые n перестановки, произведенные без каких-либо дополнительных ограничений, islice результат permutations.

>>> from itertools import permutations, islice
>>> perms = islice(permutations(yourlist), n)

Вычисление перестановок начнется только после итерации по perms - либо непосредственно с помощью цикла for, либо создания контейнера (list, tuple, set,...) из этого.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...