Как я могу пропустить кортежи, которые имеют повторяющиеся элементы на итерации, когда я использую itertools.product? Или, допустим, есть ли вообще не смотреть на них на итерации? Поскольку пропуски могут занять много времени, если количество списков слишком велико.itertools.product, устраняющий повторяющиеся элементы
Example,
lis1 = [1,2]
lis2 = [2,4]
lis3 = [5,6]
[i for i in product(lis1,lis2,lis3)] should be [(1,2,5), (1,2,6), (1,4,5), (1,4,6), (2,4,5), (2,4,6)]
Это не будет (2,2,5) и (2,2,6), так как 2 является продублировать здесь. Как я могу это сделать?
Почему это не работает Тим ?: 'В [77]: список (uprod ([0, 1], [0, 1], [2, 3, 0, 4, 5, 6, 1], [0, 5], [7, 0, 5], [7, 0, 5], [7, 6, 0, 8, 5], [7, 6, 0, 8, 5], [7, 8, 5] , [7, 8, 5])) Out [77]: [] ' – Handloomweaver
Результат выглядит корректно для меня: передайте те же последовательности в' itertools.product() ', и по крайней мере один дубликат в каждом из 113400 выход 10 кортежей. Что вы должны делать? –
Я просто получаю пустой список на Python 2.7.12 для 'list (uprod ([0, 1], [0, 1], [2, 3, 0, 4, 5, 6, 1], [ 0, 5], [7, 0, 5], [7, 0, 5], [7, 6, 0, 8, 5], [7, 6, 0, 8, 5], [7, 8, 5], [7, 8, 5])) 'Вы не понимаете этого? – Handloomweaver