给定一个Python元组t = v1, v2, v3
是否有一个实用程序来解压缩这些,以便给出:
def foo(v1,v2,v3): pass
而不是:
foo(t[0],t[1],t[2])
你可以这样做:
foo(unpack(t))
我想知道任何可用于元组和/或列表的实用程序。
真诚的谢谢。
答案 0 :(得分:17)
是的。您可以使用解包运算符('*'
)
foo(*t)
请注意,如果t是list
,tuple
,甚至是生成器
有一种类似的方法可以在映射对象(通常是字典)上使用**
运算符将参数传递给带有关键字的函数:
def foo(key=None,foo=None):
pass #...
foo(**{key:1,foo:2})
答案 1 :(得分:2)
Unpack参数列表:
foo(*(v1, v2, v3))
答案 2 :(得分:1)
使用*args
参数传递:
foo(*t)
演示:
>>> def foo(v1, v2, v3):
... print(v1, v2, v3)
...
>>> t = 1, 2, 3
>>> foo(*t)
1 2 3