Получить всю комбинацию перестановок из списка списка

#python #list

#питон #Список

Вопрос:

У меня есть список list, подобный этому.

 [[((5, 10), 0), ((49, 54), 0)],[((11, 16), 1), ((55, 60), 1)],[((27, 33), 2), ((61, 67), 2)],[((17, 26), 3), ((34, 43), 3), ((68, 77), 3)],[((83, 85), 4)]]
 

мой желаемый результат таков . Прошу вас помочь мне в этом с помощью python.

 [(5, 10),(11, 16),(27, 33),(17,26),(83, 85)]
[(5, 10),(55, 60),(27, 33),(17,26),(83, 85)]
[(5, 10),(55, 60),(61, 67),(17,26),(83, 85)]

[(5, 10),(11, 16),(61,67),(17,26),(83, 85)]


[(5, 10),(11, 16),(27, 33),(34,43),(83, 85)]
[(5, 10),(55, 60),(27, 33),(34,43),(83, 85)]
[(5, 10),(55, 60),(61, 67),(34,43),(83, 85)]

[(5, 10),(11, 16),(61,67),(34,43),(83, 85)]

[(5, 10),(11, 16),(27, 33),(68, 77),(83, 85)]
[(5, 10),(55, 60),(27, 33),(68, 77),(83, 85)]
[(5, 10),(55, 60),(61, 67),(68, 77),(83, 85)]

[(5, 10),(11, 16),(61,67),(68, 77),(83, 85)]

[(49, 54),(11, 16),(27, 33),(17,26),(83, 85)]
[(49, 54),(55, 60),(27, 33),(17,26),(83, 85)]
[(49, 54),(55, 60),(61, 67),(17,26),(83, 85)]

[(49, 54),(11, 16),(61,67),(17,26),(83, 85)]


[(49, 54),(11, 16),(27, 33),(34,43),(83, 85)]
[(49, 54),(55, 60),(27, 33),(34,43),(83, 85)]
[(49, 54),(55, 60),(61, 67),(34,43),(83, 85)]

[(49, 54),(11, 16),(61,67),(34,43),(83, 85)]

[(49, 54),(11, 16),(27, 33),(68, 77),(83, 85)]
[(49, 54),(55, 60),(27, 33),(68, 77),(83, 85)]
[(49, 54),(55, 60),(61, 67),(68, 77),(83, 85)]

[(49, 54),(11, 16),(61,67),(68, 77),(83, 85)]
 

Комментарии:

1. перестановка или комбинация?

2. Это называется декартовым произведением. Есть функция product() , которую вы можете использовать в сочетании с простым пониманием списка: [[i[0] for i in p] for p in product(*l)]

3. Неясно, для чего используется второй индекс каждого подсписка, но в любом случае, вы можете прочитать docs.python.org/3/library/itertools.html#itertools.permutations и использовать

4. @OlvinRoght что такое * l в вашем отчете, выдает ошибку. извините за мое плохое понимание

5. @vikassharma, l это имя переменной, которая содержит исходный список.