我试图用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
'''
我决定了,不!这是站不住脚的。所以我一直在尝试一种递归的方法,或者至少,不嵌套6次。我真的想不出一个好的计划来这么做。对我来说最大的障碍是每个变量都有不同的最小值、最大值和步长值。
到目前为止,我的想法并不是很有帮助。我一直试图使一些递归函数工作,但如果不在函数中嵌套更多的for循环,我就无法解决这个问题。我在这里看到了很多关于itertools.product的参考资料,但我也不太明白如何让它起作用。
编辑:我所做的是创建一个以参数组合命名的目录,用这些参数编写一个文件,用这个文件运行另一个代码,并分析该代码的输出。除了最后一个循环外,我在字面上没有做任何for循环。很多参数只有2个值,有的有10个,有的有3个。。。只是有点不一样。
下面是如何使用
product
:或者更紧凑一点:
您可以使用
itertools.product
:http://docs.python.org/library/itertools.html#itertools.product。有点像
。只有六个变量都在里面。
相关问题 更多 >
编程相关推荐