假设我有以下列表,如何实现:
LIST1 LIST2 LIST3
1 1 1
2 2 2
3 3 3
。 。
。 。
我希望迭代的行为如下:
1,1,1
1,1,2
1,1,3
1,2,1
1,2,2
1,2,3
1,3,1
1、3、2
1、3、3
2,1,1
。
。
。
这是三个列表将会发生的演示,但是在我的实际用例中,我并不预先知道列表的数量。
答案 0 :(得分:3)
如果我们不预先知道列表的数量怎么办?
在这种情况下,假设您有一个容器itertools.product
可以容纳任意数量的列表,则可以使用lists
。
演示:
>>> from itertools import product
>>>
>>> lists = [[1, 2, 3], [1, 2, 3], [1, 2, 3]]
>>> for value in product(*lists):
... print(value)
...
(1, 1, 1)
(1, 1, 2)
(1, 1, 3)
(1, 2, 1)
(1, 2, 2)
(1, 2, 3)
(1, 3, 1)
(1, 3, 2)
(1, 3, 3)
(2, 1, 1)
(2, 1, 2)
(2, 1, 3)
(2, 2, 1)
(2, 2, 2)
(2, 2, 3)
(2, 3, 1)
(2, 3, 2)
(2, 3, 3)
(3, 1, 1)
(3, 1, 2)
(3, 1, 3)
(3, 2, 1)
(3, 2, 2)
(3, 2, 3)
(3, 3, 1)
(3, 3, 2)
(3, 3, 3)
答案 1 :(得分:1)
这是循环的简单迭代。 在python中,您可以继续使用3个循环:
for a in list1:
for b in list2:
for c in list3:
print(a,b,c)