有没有更好的方法可以遍历六个范围?

时间:2019-11-11 17:15:47

标签: python

我有如下代码:

for p in range(15):
    for q in range(5):
        for d in range(3):
            for sp in range(3):
                for sd in range(2):
                    for sq in range(2):
                        ...

它将使用这六个数字来构建两组元组(foo = my_func(x=(p,d,q), y=(sp,sd,sq))),这些元组将被传递给一个函数,以便每次测试其余部分并为给定的六个参数集找到最佳结果。我上面的内容可以正常工作,但是也许有更紧凑的方法可以做到这一点,也许可以使用外部库?

1 个答案:

答案 0 :(得分:3)

使用itertools.product

from itertools import product

ranges = [range(15), range(5), range(3), range(3), range(2), range(2)]
for p, q, d, sp, sd, sq in product(*ranges):
    ...