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

Bri*_*and 138 python arguments

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

例:

# 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() )
Run Code Online (Sandbox Code Playgroud)

Dae*_*yth 163

它存在,但很难搜索.我认为大多数人称之为" splat "运算符.

它在文档中称为" 解包参数列表 ".

你会这样使用它:foo(*values).还有一个词典:

d = {'a': 1, 'b': 2}
def foo(a, b):
    pass
foo(**d)
Run Code Online (Sandbox Code Playgroud)


var*_*unl 59

您应该使用*运算符,例如foo(*values)阅读Python doc unpackaging参数列表.

此外,请阅读: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)
Run Code Online (Sandbox Code Playgroud)

  • 这应该是公认的答案。 (2认同)

And*_*ark 9

请尝试以下方法:

foo(*values)
Run Code Online (Sandbox Code Playgroud)

这可以在Python文档中找到解压缩参数列表.


Ikk*_*kke 9

这可以通过以下方式完成:

foo(*values)
Run Code Online (Sandbox Code Playgroud)