如何嵌套“ for循环” n次?

时间:2020-10-13 16:15:47

标签: python python-3.x

for a in range(min_num,max_num+1):
    for b in range(min_num,max_num+1):
        for c in range(min_num,max_num+1):
            for d in range(min_num,max_num+1):
                for e in range(min_num,max_num+1):
                    rows=[e,d,c,b,a]

我该如何写这样行可以是任意长度? 我想这样做而无需导入任何模块

2 个答案:

答案 0 :(得分:0)

from itertools import product

for i in product(range(3),repeat=3):
    print(i)

给你

(0, 0, 0)
(0, 0, 1)
(0, 0, 2)
(0, 1, 0)
(0, 1, 1)
(0, 1, 2)
(0, 2, 0)
(0, 2, 1)
(0, 2, 2)
(1, 0, 0)
(1, 0, 1)
(1, 0, 2)
(1, 1, 0)
(1, 1, 1)
(1, 1, 2)
(1, 2, 0)
(1, 2, 1)
(1, 2, 2)
(2, 0, 0)
(2, 0, 1)
(2, 0, 2)
(2, 1, 0)
(2, 1, 1)
(2, 1, 2)
(2, 2, 0)
(2, 2, 1)
(2, 2, 2)

答案 1 :(得分:0)

发电机解决方案:

xss = [],
for _ in range(n):
    xss = ([x] + xs for xs in xss for x in range(min_num, max_num+1))

使用结果的演示(带有n = 5min_num, max_num = 7, 9):

>>> for xs in xss:
        print(xs)

[7, 7, 7, 7, 7]
[8, 7, 7, 7, 7]
[9, 7, 7, 7, 7]
[7, 8, 7, 7, 7]
[8, 8, 7, 7, 7]
[9, 8, 7, 7, 7]
[7, 9, 7, 7, 7]
[8, 9, 7, 7, 7]
[9, 9, 7, 7, 7]
[7, 7, 8, 7, 7]
...
[9, 9, 8, 9, 9]
[7, 7, 9, 9, 9]
[8, 7, 9, 9, 9]
[9, 7, 9, 9, 9]
[7, 8, 9, 9, 9]
[8, 8, 9, 9, 9]
[9, 8, 9, 9, 9]
[7, 9, 9, 9, 9]
[8, 9, 9, 9, 9]
[9, 9, 9, 9, 9]