【发布时间】:2015-08-19 17:38:07
【问题描述】:
好吧,我真的不知道如何用语言来描述这一点,但我有一个简单的例子:
def foo(x,y,z):
r=x+....
a = [1,2,3]
foo(a[0], a[1], a[2])
我可以在不多次调用a[n] 的情况下做同样的事情吗?但保留“x,y,z”的定义?
【问题讨论】:
标签: 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”的定义?
【问题讨论】:
标签: python arrays list function arguments
>>> 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]
【讨论】:
是的,使用解包运算符将任意参数传递给您的函数:
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)
【讨论】:
试试这个
def foo(x,y,z):
r=x+....
a = [1,2,3]
foo(*a)
【讨论】: