#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
это имя переменной, которая содержит исходный список.