【问题标题】:how to define dynamic nested loop python function如何定义动态嵌套循环python函数
【发布时间】:2016-07-09 06:10:05
【问题描述】:
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个嵌套循环”?

【问题讨论】:

    标签: function loops dynamic nested python-3.5


    【解决方案1】:

    您可以使用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)
    

    【讨论】:

    • 非常好的解决方案。我很感激。
    猜你喜欢
    • 2012-03-09
    • 2020-01-23
    • 2013-11-25
    • 1970-01-01
    • 1970-01-01
    • 2015-05-24
    • 2021-01-15
    • 2016-04-22
    • 1970-01-01
    相关资源
    最近更新 更多