高阶函数的概念之前学习React的时候也了解过。所谓高阶函数就是定义一个函数,该函数接收另一个函数作为参数。一个简单的例子:
def add(x,y,f):
return f(x) + f(y)
我们定义的add就是一高阶函数,参数f是另一个函数,在add内部调用。
我们可以通过如下代码,打印结果验证:
print(add(-5,6,abs))
map
map是python的内置方法,用以遍历序列。他接收两个参数,第一个是被执行的函数,第二个是Iterable,一个序列。map会将序列中的每个元素依次作用到函数中,最终结果作为新的序列返回。看一个例子:
# 先定义一个被执行函数
def f(x):
return x*x
r = map(f,[1,2,3,4,5,6,7])
list(r)
# 打印结果 [1,4,9,16,25,36,49]
reduce
reduce同样接受两个参数,第一个是函数,第二个是序列,不同的是reduce的第一个参数函数必须也接收两个参数,reduce会把函数返回的结果依次跟序列的下一个元素做累计计算:
from functools import reduce
def add(x,y):
return x+y
reduce(add,[1,3,5,7,9])
# 25