我正在尝试使用 python 对另一个代码进行一些参数测试。我需要测试 6 个独立参数,但我需要它们的所有可能组合。
每个参数都有一个最小值、一个最大值和一个需要传递给它的步长值。突然出现在我脑海中的第一个简单的解决方案是嵌套的 for 循环结构,看起来很可怕,如下所示:
for var1 in xrange(min1,max1,step1):
for var2 in xrange(min2,max2,step2):
...
...
...
for var6 in xrange(min6,max6,step6):
'''
Do something and be icky in the process due
to being in the middle of six nested for loops
'''
我决定,不!这不能成立。因此,我一直在尝试找出一种递归方式来执行此操作,或者至少不嵌套六次。我真的想不出一个好的计划来做到这一点。对我来说最大的障碍是每个变量都有不同的最小值、最大值和步长值。
到目前为止,我的想法并不是很有帮助。我一直在尝试使一些递归函数工作,但是如果不在函数中嵌套更多 for 循环,我就无法弄清楚。我在这里看到了很多对 itertools.product 的引用,但我也不太清楚如何使它工作。
编辑:我正在做的是创建一个以参数组合命名的目录,用这些参数编写一个文件,用这个文件运行另一个代码,并分析该代码的输出。除了最后一个循环之外,我实际上在任何 for 循环中都没有做任何事情。很多参数只有 2 个值,有的有 10 个,有的有 3 个……只是有点不同。