[英]All possible combinations of a list of a list
当组合列表中的列表时,我非常需要一些算法帮助。 假设我具有以下数据结构:
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']
但是,今天我的思维定势已完全消失,因此我无法想到如何最好地使用Python迭代结构以最干净的方式获得所有组合。 我敢肯定,这已经有人做过,但是在google和stack上进行了几次搜索后,我放弃了寻找关键字的正确组合,以便为该问题找到合适的算法。
有什么想法可以解决这个问题的最干净的算法是什么?
只需使用itertools.product
,它就可以完成您要尝试的操作。 如果您对算法感兴趣,可以随时查看源代码。
itertools.product(*fields)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.