#python #random #combinations #itertools
#python #Случайный #комбинации #python-itertools
Вопрос:
У меня есть список, l1
в котором я сгенерировал все комбинации длиной 2 с помощью itertools.combinations. Я намерен перебирать эти комбинации и выполнять с ними операцию. Для простоты этот код просто печатает комбинацию a
.
import itertools
l1 = [1,2,3,4,5]
for a in itertools.combinations(l1,2):
print(a)
Есть ли какой-либо способ рандомизировать порядок, в котором комбинации повторяются? random.shuffle
похоже, что это не работает, поскольку itertools.combinations не имеет длины.
Комментарии:
1. Смотрите также
more_itertools.random_combination
Ответ №1:
Почему бы не сохранить комбинации как переменную, а затем перемешать?:
import itertools
import random
l1 = [1,2,3,4,5]
combs = list(itertools.combinations(l1,2))
random.shuffle(combs)
for a in combs:
print(a)
Комментарии:
1. Это будет работать, но только для достаточно небольших комбинаций, которые могут быть преобразованы в списки.