【发布时间】:2016-08-28 09:54:43
【问题描述】:
我的清单很少:
a = [1,2,3]
b = [4,5,6]
c = [7,8,9,10]
如何生成所有组合,例如:
a[0], b[0]
a[1], b[1]
a[2], b[2]
a[0], b[0], c[0]
a[1], b[1], c[0]
a[2], b[2], c[0]
a[1], b[1], c[1]
a[2], b[2], c[2]
a[0], b[0], c[3]
a[1], b[1], c[3]
a[2], b[2], c[3]
.....
每个列表一次只能有一个值。
想象两个或多个列表,例如 a=[1,2,3] 和 b=[4,5,6] 和 c=[7,8,9],我想要所有可能的对,例如 (a[0 ], b[0]),(a[1], b[1]), (a[0], b[0], c[0])...
【问题讨论】:
-
itertools.permutations,需要长度。根据侧边栏也复制了stackoverflow.com/questions/104420/…。 -
这有什么不寻常的,这与 SO 上的所有其他排列问题有何不同?
-
我希望 a* 在列表中只出现一次。不能是 a1、a2、a3 或 b1,b2,c1
-
'a1'之类的东西是你真实的字符串模式吗,也就是说,你如何在你的真实场景中指定'a'和'*'是什么? -
您可能应该为此使用
itertools.product,但仍不清楚您想要什么组合。输出应该包含 (a[0], c[0]) 还是 (b[0], c[0])?顺便说一句,(a[0], b[0], c[0]) 包含 3 个项目,所以它不是一对。
标签: python algorithm combinations permutation