如何定义动态嵌套循环python函数

时间:2016-07-08 22:04:22

标签: function loops dynamic nested python-3.5

a = [1]
b = [2,3]
c = [4,5,6]

d = [a,b,c]


for x0 in d[0]:
    for x1 in d[1]:
        for x2 in d[2]:
            print(x0,x1,x2)

结果:

1 2 4
1 2 5
1 2 6
1 3 4
1 3 5
1 3 6

完美,现在我的问题是如何定义这个功能,考虑到可能会有更多的值列表。我们的想法是获得功能,动态地产生相同的结果。

有没有办法向python解释:"例如8个嵌套循环"?

1 个答案:

答案 0 :(得分:6)

您可以使用itertools为您计算产品,并可以使用*运算符将您的列表转换为itertools.product()函数的参数。

import itertools

a = [1]
b = [2,3]
c = [4,5,6]

args = [a,b,c]

for combination in itertools.product(*args):
    print combination

输出

(1, 2, 4)
(1, 2, 5)
(1, 2, 6)
(1, 3, 4)
(1, 3, 5)
(1, 3, 6)