Python map/reduce函数式编程

时间:2022-01-24 07:23:54

map/reduce

map()函数接收两个参数,一个是函数,一个是序列,map将传入的函数依次作用到序列的每个元素,并把结果作为新的list返回

mlist=map(lambda x: x ** 2, [1, 2, 3, 4, 5])
for m in mlist:
print("map",m)
reduce把一个函数作用在一个序列[x1, x2, x3...]上,这个函数必须接收两个参数,reduce把结果继续和序列的下一个元素做累积计算

r=reduce(lambda x, y: x + y, [2, 3, 4, 5, 6], 100)
print("reduce",r)

def fn(x, y):
return x * 10 + y
print(reduce(fn, [1, 3, 5, 7, 9]))