我想遍历三个列表
['A','B'],[1,2],[3,4]
如果我想遍历所有可能性,我可以这样做:
for i,j,k in zip(['A','B'],[1,2],[3,4])
但是,我想以某种方式循环。我想迭代'A',1 and 'B',2
最后一个列表的所有可能值。因此,我想排除组合
'A',2 and 'B',1.
基本上我想生成以下项目。'A',1,3 'A',1,4 'B',2,3 B',2,4
我不知道该怎么做。
因为你想把"a"和1绑在一起,把'b'和2绑在一起,所以你应该把前两个列表压缩在一起。而且因为无论你在第一部分做出哪个选择,你都想迭代 3 和 4,所以这应该是一个单独的迭代,而不是 zip 的一部分。
[(i,j,k) for k in [3, 4] for i,j in zip(['a', 'b'], [1, 2])]
# [('a', 1, 3), ('b', 2, 3), ('a', 1, 4), ('b', 2, 4)]
您可以使用itertools.product
from itertools import product
for a,b in product(zip(l1,l2), l3):
print (a[0], a[1], b)
A 1 3
A 1 4
B 2 3
B 2 4