嗯,我真的不知道怎么用文字描述这个,但我有一个简单的例子:
def foo(x,y,z):
r=x+....
a = [1,2,3]
foo(a[0], a[1], a[2])
我可以多次拨打a[n]
来做同样的事情吗?但保持“x,y,z”的定义?
答案 0 :(得分:4)
>>> 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)