我正在使用类似def foo(*args)
的头部调用第三方函数,因此通常我可以这样使用foo(a,b,c)
。
但现在我有一个清单,说li = [a,b,c]
。我不知道它在运行之前有多少元素。如何将列表的所有元素作为参数传递给函数foo
。
我已尝试foo(li)
和foo(tuple(li))
,但它们无效。请帮忙。
谢谢。
答案 0 :(得分:2)
在调用函数时使用*
,*
在函数调用期间将unpacking序列用于单独的位置参数:
foo(*li)
演示:
>>> def foo(*args): print (args)
>>> foo(*range(10))
(0, 1, 2, 3, 4, 5, 6, 7, 8, 9)
答案 1 :(得分: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)