首页 > 解决方案 > 将值数组传播到函数调用中的参数

问题描述

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

天真的方法是:

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

有没有更优雅的方式?

标签: python

解决方案


您可以使用任意参数列表

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)

推荐阅读