在函数式语言里,map表示对一个列表(List)中的每个元素做计算,reduce表示对一个列表中的每个元素做迭代计算。它们具体的计算是通过传入的函数来实现的,map和reduce提供的是计算的框架。
1、Map
Map接收两个参数,第一个参数是函数f,第二个参数是Iterable。Map将传入的Iterable依次作用于函数f。
例1:序列元素求平方
def f(x):
return x * x
r = list(map(f, [1, 2, 3]))
print(r)
2、Reduce
Reduce接收两个参数,第一个参数是函数f,第二个参数是Iterable。函数f必须接受两个参数,Reduce把函数f的结果和序列下一个元素累积计算。
例1:序列变成整数
from functools import reduce
def f(x, y):
return x * 10 + y
num = reduce(f, [1, 2, 3])
print(num)
reduce(f, [1, 2, 3])相当于f(f(1,2),3)
例2:序列求和
from functools import reduce
def f(x, y):
return x + y
num = reduce(f, [1, 2, 3])
print(num)



