python 2.7中的map()

时间:2018-02-01 07:03:04

标签: python python-2.7 lambda

Reduce()工作正常,但当我使用与Map()相同的Lambda()时,它显示TypeError。 我无法解决错误。

l = [2,4,6,8,10]
reduce(lambda x,y: x+y,l)

输出:

30

l = [2,4,6,8,10]
map(lambda x,y: x+y,l)

输出:

  

TypeError Traceback(最近一次调用   最后)in()   ----> 1个地图(lambda x,y:x + y,l)

     

TypeError :()只需要2个参数(给定1个)

1 个答案:

答案 0 :(得分:1)

这是对map的误解。它不需要两个参数(与reduce不同),而是由map调用的函数接受一个参数并返回使用函数修改所有参数的列表。例如:

>>> a = [1, 2, 3, 4, 5]
>>> map(lambda arg: arg + 1, a)
[2, 3, 4, 5, 6]

这里函数递增一个参数,因此数组的所有元素都会递增。