说我有4个阵列:
a = [1,2,3]
b = [1,2,3,4]
c = [1,2,3,4,5]
d = [1,2,3,4,5,6]
我可以像这样迭代:
tups = []
for i in a:
for j in b:
for k in c:
for l in d:
t = i,j,k,l
tups.append(t)
然后 tups
将是一个元组数组,看起来像这样:
1,1,1,1
1,1,1,2
1,1,1,3
...
1,1,1,6
...
这似乎相当漫长,我觉得应该有一个更快/更有效的方法,但我不是一个真正的python专家。
如何在不绕过每个阵列的情况下更快地完成此操作?我可以使用一些功能方法吗?
答案 0 :(得分:0)
In [1]: import itertools
In [2]: a=[1,2,3]
In [3]: b=[1,2,3,4]
In [4]: c=[1,2,3,4,5]
In [5]: d=[1,2,3,4,5,6]
In [6]: for i in itertools.product(a,b,c,d):
...: print(repr(i))
...:
(1, 1, 1, 1)
(1, 1, 1, 2)
(1, 1, 1, 3)
(1, 1, 1, 4)
(1, 1, 1, 5)
(1, 1, 1, 6)
(1, 1, 2, 1)
...
(3, 4, 5, 4)
(3, 4, 5, 5)
(3, 4, 5, 6)