将值数组扩展为函数调用中的参数

时间:2019-06-20 12:23:32

标签: python

我正在获取一个值数组,我想将它们发送到具有相同参数计数的预定义函数。

天真的做法是:

 values = [1,2,3,4] # getting it from outside
 if len(values) == 1:
     func(values[0])
 elif len(values) == 2:
     func(values[0], values[1])
 .
 .
 .

还有更优雅的方式吗?

1 个答案:

答案 0 :(得分:2)

您可以使用arbitrary argument lists

def func(*args):

    for arg in args:
        print(arg)

values = [1]
func(*values)
values = [1, 2]
func(*values)

func(1)
func(1,2)

输出将为

1
1
2

或者只是通过func(values)

将整个数组传递给函数
def func(values):

    for value in values:
        print(value)

values = [1]
func(values)

values = [1, 2]
func(values)