将一个值列表而不是多个参数传递给函数?

时间:2012-06-16 14:47:17

标签: python list function arguments

假设有一个函数func(),它有两个参数,ab。在Python中是否存在某种技术来传递单个列表mylist,而这两个列表都具有该函数的值?

def myfunc(a, b):
    return a+b

myfunc([1, 2])

如果一个人完全确定他总是调用相同的函数并知道它需要多少个参数,那么就可以这样做:

mylist = [1, 2]
a, b = mylist

myfunc(a, b)

但是,如果你有列表需要提供给某些功能,并且每个功能都有不同的参数呢? 可以为每个函数编写单独的代码行,将列表解压缩为变量并将它们传递给相应的函数,但是如果Python内置了一些内容来传递单个列表而不是单个参数值(事先确定list具有相应数量的值),那样看起来会好很多,最重要的是需要更少的代码行。

2 个答案:

答案 0 :(得分:8)

您可以*使用unpack the list into arguments

myfunc(*mylist)

答案 1 :(得分:4)

def myfunc(a, b):
    return a+b

mylist = [1, 2]
myfunc(*mylist)

此处mylist可以是长度为2的listtuplestring等。