58

什么是从列表中提取项目并将它们作为参数传递给函数调用的一种好的、简短的方法,如下例所示?

例子:

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

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

add(magic_function(x))
4

3 回答 3

90

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

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

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

同样,您可以使用双星将 dict 解压缩为关键字参数。

x = { 'a': 3, 'b': 1, 'c': 2 }
add(**x) 
于 2011-09-23T10:54:15.780 回答
15

我认为您的意思是* 拆包操作员

>>> 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
于 2011-09-23T10:53:20.493 回答
5

使用*运算符。所以add(*x)会做你想做的事。

有关更多信息,请参阅this other SO question

于 2011-09-23T10:54:29.120 回答