函数论证中的元组解包

ian*_*and 2 python tuples python-3.x

在下面的函数中,args[i]应该通过前面的 解压到函数 func 的参数中*,但是传入的是一个列表。我缺少什么?

def mymap(func, *seq):
    args = list(zip(seq))
    ret = []
    for i in range(len(args)):
        print(type(args[i]))
        ret.append( func(*args[i]) )
    return ret

f = lambda x: x+2

mymap(f, [1,2,3])
Run Code Online (Sandbox Code Playgroud)

Mik*_*ler 5

*在函数定义中打包并在函数调用中解包。

定义一个新函数:

def func1(*args):
    print(args)
Run Code Online (Sandbox Code Playgroud)

这个包:

>>> func1(1, 2)
(1, 2)
Run Code Online (Sandbox Code Playgroud)

有两个参数的函数

def func2(a, b):
    print(a)
    print(b)
Run Code Online (Sandbox Code Playgroud)

可以使用以下命令通过序列调用*

>>> func2(*[1, 2])
1
2
Run Code Online (Sandbox Code Playgroud)