如何在Python中解压缩列表或元组?

时间:2013-12-17 19:08:44

标签: python list tuples

是否可以解压缩列表或元组,使值可以用作函数参数?即,如何使第二行起作用?

f(1,2,3)
f(???([1,2,3]))

我目前正在手动执行此操作,例如:

tmp1, tmp2, tmp3 = [1,2,3]
f(tmp1,tmp2,tmp3)

context:我没有能力修改f(),但这是代码生成器的一部分,所以时髦的解决方案不是问题。

1 个答案:

答案 0 :(得分:11)

是的,您可以使用*args(splat)语法:

f(*[1, 2, 3])

请参阅call expressions documentation

还有一个关键字参数等效,使用两颗星:

kwargs = {'foo': 'bar', 'spam': 'ham'}
f(**kwargs)

并且在函数签名中指定了catch-all参数的语法相同:

def func(*args, **kw):
    # args now holds positional arguments, kw keyword arguments