以简单的方式将数组中的多个参数传递给函数

时间:2015-06-04 22:19:52

标签: python arrays list function arguments

嗯,我真的不知道怎么用文字描述这个,但我有一个简单的例子:

def foo(x,y,z):
     r=x+....

a = [1,2,3]
foo(a[0], a[1], a[2])

我可以多次拨打a[n]来做同样的事情吗?但保持“x,y,z”的定义?

3 个答案:

答案 0 :(得分:4)

使用unpacking operator

>>> def foo(x,y,z):
...     return x+y+z
... 
>>> a = [1,2,3]
>>> foo(*a)
6

来自文档

  

如果它们不可单独使用,请使用以下命令编写函数调用   * -operator从列表或元组中解压缩参数:

>>> args = [3, 6]
>>> range(*args)            # call with arguments unpacked from a list [3, 4, 5]

答案 1 :(得分:1)

是的,使用解包运算符将任意参数传递给函数:

def foo(*args):
     for i in args : # you can iterate over args or get its elements by indexing
         #do stuff

a = [1,2,3]
foo(*a)

如果您只是传递3个参数,则可以在通话时使用解包。

def foo(x,y,z):
     r=x+....

a = [1,2,3]
foo(*a)

答案 2 :(得分:1)

试试这个

def foo(x,y,z):
     r=x+....

a = [1,2,3]
foo(*a)