如何从列表中提取参数并将它们传递给函数调用

67

如何简洁地从列表中提取项目并将它们作为参数传递给函数调用,例如下面的示例?

示例:

def add(a,b,c,d,e):
    print(a,b,c,d,e)

x=(1,2,3,4,5)

add(magic_function(x))
3个回答

101

您可以使用星号将元组或列表解包为位置参数。

def add(a, b, c):
    print(a, b, c)

x = (1, 2, 3)
add(*x)

同样地,你可以使用双星号将字典解包为关键字参数。

x = { 'a': 3, 'b': 1, 'c': 2 }
add(**x) 

17

我认为你是指 * 拆包运算符

>>> l = [1,2,3,4,5]
>>> def add(a,b,c,d,e):
...    print(a,b,c,d,e)
...
>>> add(*l)
1 2 3 4 5

7
使用 * 操作符。因此,add(*x) 可以实现你想要的功能。
请参阅其他 SO 问题 以获取更多信息。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接