Python 函数参数中的元组解包

Python 函数参数中的元组解包,python,python-3.x,tuples,Python,Python 3.x,Tuples,在下面的函数中,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 m

在下面的函数中,
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])

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

定义新功能:

def func1(*args):
    print(args)
这包括:

>>> func1(1, 2)
(1, 2)
双参数函数

def func2(a, b):
    print(a)
    print(b)
可以使用
*
使用序列调用:

>>> func2(*[1, 2])
1
2

预期的产出是多少
*seq
捕获了许多额外的参数,您的
[1,2,3]
只是一个参数。您的
列表(zip(seq))
行尤其令人费解;您只有一个元组(
seq
),其中包含一个列表(
[1,2,3]
)。您希望
args
包含什么?