5

假设有一个函数func()需要两个参数,a并且b. Python中是否有某种技术可以将mylist具有两个值的单个列表传递给函数?

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

myfunc([1, 2])

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

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

myfunc(a, b)

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

4

2 回答 2

8

您可以使用*列表解压缩为参数

myfunc(*mylist)
于 2012-06-16T14:48:49.097 回答
4
def myfunc(a, b):
    return a+b

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

这里mylist可以是长度为 2 的list,tuplestring

于 2012-06-16T14:49:19.480 回答