【发布时间】:2017-08-24 18:34:41
【问题描述】:
我有一个参数列表,例如:
import numpy as np
param1 = np.arange(0., 1., 0.01)
param2 = np.arange(10., 8000., 100.)
...
我还有一个函数 foo 定义了一个关键字参数列表 arg1, arg2, ... 及其默认值:
def foo(arg1=default1, arg2=default2, ...)
我需要做的是调用这个函数,用我的参数列表中的参数和值(一个一个)更改其中一个默认值,如下所示:
foo(arg1=param1[0])
foo(arg1=param1[1])
...
foo(arg2=param2[0])
foo(arg2=param2[0])
我想到的最好方法是创建一个包含所有参数的字典,然后遍历键和值并从中创建一个新的临时字典,然后调用函数:
all_params = {'arg1':param1, 'arg2':param2, ...}
for key, value_list in all_params.items():
for value in value_list:
tmp_dict = {key:value}
foo(**tmp_dict)
但我有一种感觉,1) 我正在以非 Python 的方式进行迭代,2) 显然有更好的方法来解决这个问题。
编辑:根据@Sebastian 的建议简化了嵌套循环。
【问题讨论】:
标签: python function numpy dictionary