如何使用范围列表自动创建嵌套的for循环?

时间:2018-12-17 12:20:12

标签: python nested-loops

我想创建一个嵌套for循环,该循环使用一系列整数作为循环范围,如下所示:

a = [5,4,7,2,7,3,8,3,8,9,3,2,1,5]
for i in range(a[0]):
    for j in range(a[1]):
        for k in range(a[2]):
            for l in range(a[3]):
                ...
                   ...
                      ...
                          do_some_function()

有没有一种方法可以自动完成?

1 个答案:

答案 0 :(得分:2)

您将可以使用以下方法迭代列表范围的排列

for items in itertools.permutations(range(item) for item in a):

items将包含每个范围中只有一项的序列。

注意:该方法非常耗时和耗资源。考虑一下您的问题所基于的概念是否可以优化可能是一个很好的选择。