函数调用上的For循环-Python

时间:2018-11-17 18:29:11

标签: python arrays python-3.x function

我的python代码有问题,我正在运行一个函数,但是该函数需要一些参数,每次给出的参数数量都不相同,该数量将取决于数组的大小,我想到了for循环,但在该函数内部不起作用。

data['x'] = 1
data['z'] = 2
somefunction(for y in data: data_y=data[y])

2 个答案:

答案 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