Я отчаянно нуждаюсь в помощи некоторых алгоритмов при объединении списков внутри списков. Если предположить, что у меня есть следующая структура данных:Все возможные комбинации списка списка
fields = [ ['a1', 'a2', 'a3'], ['b1', 'b2', 'b3'], ['c1', 'c2', 'c3'], ['d1', 'd2', 'd3'] ]
Я пытаюсь написать генератор (Python), который обеспечит все возможные комбинации из элементов, так что следующий код:
for x in thegenerator(fields): print(x)
даст следующий вывод:
['a1', 'b1', 'c1', 'd1'] ['a1', 'b1', 'c1', 'd2'] ['a1', 'b1', 'c1', 'd3'] ['a1', 'b1', 'c2', 'd1'] ['a1', 'b1', 'c2', 'd2'] ['a1', 'b1', 'c2', 'd3'] ... ['a3', 'b3', 'c3', 'd3']
Однако, мое мышление полностью отключен сегодня, так что я не могу думать, как я лучше всего повторять структуру, чтобы получить все комбинации наиболее чистый ва y, используя Python. Я уверен, что это было сделано кем-то раньше, но после нескольких поисков в google и stack я отказался от поиска правильной комбинации ключевых слов, чтобы найти подходящий алгоритм для этой проблемы.
Любые идеи, какой самый чистый алгоритм исправить это будет?
Вы правы. Я уже кратко посмотрел на itertools.product, но, видимо, недостаточно хорошо, так как я думал, что функциональность немного изменилась. Спасибо! – agnsaft