我想循环三个列表
['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
我对如何做到这一点毫无头绪。
答案 0 :(得分:2)
因为你想保持'与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)]
答案 1 :(得分:1)
您可以使用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