如何在 Python 中将列表扩展为函数参数

是否有语法允许您将列表展开为函数调用的参数?

例如:

# Trivial example function, not meant to do anything useful.
def foo(x,y,z):
return "%d, %d, %d" %(x,y,z)


# List of values that I want to pass into foo.
values = [1,2,3]


# I want to do something like this, and get the result "1, 2, 3":
foo( values.howDoYouExpandMe() )
140331 次浏览

试试以下方法:

foo(*values)

这可以在 Python 文档 解开参数列表中找到。

它确实存在,但是很难搜索。我想大多数人称它为“ ”操作员。

文件上写的是“ 拆开参数列表”。

对于位置参数,可以这样使用:

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

还有一个是字典可以用命名参数调用的:

d = {'a': 1, 'b': 2}
def foo(a, b):
pass
foo(**d)

这可以通过以下方式实现:

foo(*values)

您应该使用 * 操作符,如 foo(*values),阅读 Python 文档 分解参数列表

另外,请务必阅读以下内容: http://www.saltycrane.com/blog/2008/01/how-to-use-args-and-kwargs-in-python/

def foo(x,y,z):
return "%d, %d, %d" % (x,y,z)


values = [1,2,3]


# the solution.
foo(*values)