元组在功能争论中打开包装

时间:2015-05-25 21:32:59

标签: 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

mymap(f, [1,2,3])

1 个答案:

答案 0 :(得分:3)

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

定义新功能:

def func1(*args):
    print(args)

这个包:

>>> func1(1, 2)
(1, 2)

具有两个参数的函数

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

使用序列调用

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