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个)
答案 0 :(得分:1)
这是对map
的误解。它不需要两个参数(与reduce不同),而是由map调用的函数接受一个参数并返回使用函数修改所有参数的列表。例如:
>>> a = [1, 2, 3, 4, 5]
>>> map(lambda arg: arg + 1, a)
[2, 3, 4, 5, 6]
这里函数递增一个参数,因此数组的所有元素都会递增。