0

我正在调用带有头部的第三方函数def foo(*args),因此通常我可以以这种方式使用它foo(a,b,c)

但现在我有一个清单,比如说li = [a,b,c]。直到运行时我才知道它有多少元素。如何将列表的所有元素foo作为参数传递到函数中。

我试过foo(li)and foo(tuple(li)),但它们不起作用。请帮忙。

谢谢你。

4

2 回答 2

2

*在调用函数时使用,*用于在函数调用期间将序列解包为单独的位置参数:

foo(*li)

演示:

>>> def foo(*args): print (args)
>>> foo(*range(10))
(0, 1, 2, 3, 4, 5, 6, 7, 8, 9)
于 2013-05-11T17:58:51.770 回答
2

尝试在它之前传递li一个*,如foo(*li)

li = [1, 2, 3, 4, 5]
foo(*li)

例如:

>>> def f(*args):
...     print args
...
>>> li = [1,2,3]
>>> f(*li)
(1, 2, 3)
于 2013-05-11T17:58:53.773 回答