【发布时间】:2010-12-13 21:47:19
【问题描述】:
我有一个元组列表
A= [ [(1,2,3),(4,5,6)], [(7,8,9),(8,7,6),(5,4,3)],[(2,1,0),(1,3,5)] ]
外部列表可以有任意数量的内部列表,内部列表可以有任意数量的元组,一个元组总是有3个整数。
我想生成元组的所有组合,每个列表一个:
[(1,2,3),(7,8,9),(2,1,0)]
[(1,2,3),(7,8,9),(1,3,5)]
[(1,2,3),(8,7,6),(2,1,0)]
...
[(4,5,6),(5,4,3),(1,3,5)]
一个简单的方法是使用类似于itertools.poduct()的函数
但必须这样调用
itertools.product([(1,2,3),(4,5,6)], [(7,8,9),(8,7,6),(5,4,3)],[(2,1,0),(1,3,5)])
即外部列表被删除。我不知道该怎么做。有没有更好的方法来生成所有元组组合?
【问题讨论】:
-
列表的嵌套级别可以有多深。只有 2 个,就像你的例子一样?
-
@S Lott,相关但不重复。 (我也这么认为,最初,我认为“flatten”关键字具有误导性。想编辑标题但没有找到更好的表达方式;也许是“枚举组合”......
-
也许是错误的词,但当我写这个问题时,我认为它是关于“扁平化”的。不,这不是家庭作业。我获得了 83 年的学位,那时一直在工作。但是python是新的。试图解决瑞典报纸上的测验导致我迄今为止的所有问题。
-
“笛卡尔积”也许就是您要找的词。
标签: python