This question already has an answer here:
这个问题在这里已有答案:
- *args and **kwargs? [duplicate] 11 answers
* args和** kwargs? [重复] 11个答案
What is a good, brief way to extract items from a list and pass them as parameters to a function call, such as in the example below?
从列表中提取项目并将它们作为参数传递给函数调用的简单方法是什么,如下例所示?
Example:
def add(a,b,c,d,e):
print(a,b,c,d,e)
x=(1,2,3,4,5)
add(magic_function(x))
3 个解决方案
#1
50
You can unpack a tuple or a list into positional arguments using a star.
您可以使用星形将元组或列表解压缩为位置参数。
def add(a, b, c):
print(a, b, c)
x = (1, 2, 3)
add(*x)
Similarly, you can use double star to unpack a dict into keyword arguments.
同样,您可以使用double star将dict解压缩为关键字参数。
x = { 'a': 3, 'b': 1, 'c': 2 }
add(**x)
#2
10
I think you mean the *
unpacking operator:
我认为你的意思是*解包运营商:
>>> 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
#3
4
Use the *
operator. So add(*x)
would do what you want.
使用*运算符。所以add(* x)会做你想要的。
See this other SO question for more information.
有关更多信息,请参阅此其他SO问题。
#1
50
You can unpack a tuple or a list into positional arguments using a star.
您可以使用星形将元组或列表解压缩为位置参数。
def add(a, b, c):
print(a, b, c)
x = (1, 2, 3)
add(*x)
Similarly, you can use double star to unpack a dict into keyword arguments.
同样,您可以使用double star将dict解压缩为关键字参数。
x = { 'a': 3, 'b': 1, 'c': 2 }
add(**x)
#2
10
I think you mean the *
unpacking operator:
我认为你的意思是*解包运营商:
>>> 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
#3
4
Use the *
operator. So add(*x)
would do what you want.
使用*运算符。所以add(* x)会做你想要的。
See this other SO question for more information.
有关更多信息,请参阅此其他SO问题。