Python避免多个嵌套循环

时间:2015-06-09 22:32:05

标签: python python-2.7

我正在编写一个脚本来查找要传递给方法的最佳参数。我已经创建了一个我希望迭代的参数的可能值列表,并且想知道我是否可以避免编写嵌套循环对于相同的。

这是代码的粗略草图

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,...)

我想知道如何以更好的方式实施它。我希望如果在解决方案中,我可以轻松地将哪个参数保留在最外层循环中。等

1 个答案:

答案 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的顺序。