我正在编写一个脚本来查找要传递给方法的最佳参数。我已经创建了一个我希望迭代的参数的可能值列表,并且想知道我是否可以避免编写嵌套循环对于相同的。
这是代码的粗略草图
param_1 = [1,2,3,5,10]
param_2 = [100,200]
param_3 = [True, False]
param_4 = [True, False]
.
.
for p1 in param_1:
for p2 in param_2:
.
.
do_something(p1,p2,...)
我想知道如何以更好的方式实施它。我希望如果在解决方案中,我可以轻松地将哪个参数保留在最外层循环中。等
答案 0 :(得分:2)
您可以使用itertools.product
:
import itertools
for args in itertools.product(param_1, param_2, param_3, param_4):
do_something(*args)
这将创建所有可能参数组合的笛卡尔积,并将其传递给do_something
。您还可以修改param_X
变量传递给itertools.product
的顺序,这会影响参数传递给do_something
的顺序。