是否有更多pythonic方法在函数的参数上爆炸列表?

rut*_*ord 5 python parameters arguments function list

def foo(a, b, c):
 print a+b+c

i = [1,2,3]
Run Code Online (Sandbox Code Playgroud)

有没有办法在没有显式索引的情况下调用foo(i)?试图避免foo(i [0],i [1],i [2])

K Z*_*K Z 9

是的,使用foo(*i):

>>> foo(*i)
6
Run Code Online (Sandbox Code Playgroud)

您还可以*在函数定义中使用: def foo(*vargs)将所有非关键字参数放入一个名为的元组中vargs.和使用**,用于例如def foo(**kargs),会把所有关键字参数到名为词典kargs:

>>> def foo(*vargs, **kargs):
        print vargs
        print kargs

>>> foo(1, 2, 3, a="A", b="B")
(1, 2, 3)
{'a': 'A', 'b': 'B'}
Run Code Online (Sandbox Code Playgroud)