嵌套for循环:如何从所有索引构建元组?

时间:2017-09-01 23:15:03

标签: python nested-loops

说我有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专家。

如何在不绕过每个阵列的情况下更快地完成此操作?我可以使用一些功能方法吗?

1 个答案:

答案 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)