我的python代码有问题,我正在运行一个函数,但是该函数需要一些参数,每次给出的参数数量都不相同,该数量将取决于数组的大小,我想到了for循环,但在该函数内部不起作用。
data['x'] = 1
data['z'] = 2
somefunction(for y in data: data_y=data[y])
答案 0 :(得分:1)
*
应该可以解决问题。有关该主题的更多信息,请参见this。
* args将为您提供所有函数参数,例如a tuple:
def somefunction(*args):
for x in args:
print(x * 10)
测试:
data = ['a', 'b', 'c']
somefunction(data[0], data[1], data[2])
输出:
aaaaaaaaaa
bbbbbbbbbb
cccccccccc
使用**
作为关键字参数:
**kwargs
将带给您全部 关键字参数,但与形式参数作为字典相对应的参数除外
def somefunction(**kwargs):
for key in kwargs:
print(key, "->", kwargs[key])
测试:
data = ['a', 'b', 'c']
somefunction(y1 = data[0], y2 = data[1], y3 = data[2])
输出:
y1 -> a
y2 -> b
y3 -> c
答案 1 :(得分:0)
我看到您尝试传递作为dict的参数,并在此处回答指向具有数组类型实参的函数,因此下面的示例代码显示了如何使用dict来实现。
def somefunction(**kwargs):
for arg in kwargs:
print(arg, kwargs[arg])
data = {'x': 1, 'z': 2}
somefunction(**data)
# z 2
# x 1
data = {'x': 1, 'y':2, 'z': 3}
somefunction(**data)
# z 3
# x 1
# y 2