什么是高阶函数
- 高阶函数本质上是指函数的参数是可以是一个函数,python中常用的高阶函数有以下三种
- map()函数
map()函数接收的参数分别是:一个函数,可以是任何函数,另一个参数是一个或多个可迭代对象,可以是列表、元组、集合;
map()函数的主要功能是把一个可迭代对象转换为另一个可迭代的对象,# 参数 l1 = [1, 2, 3, 4] l2 = [5, 6, 7, 8] # lambda函数接收两个参数 f = lambda x, y: x+y # 实现列表对应位置的相加 res1 = map(f, l1, l2) # 结果是一个map对象 print(res1) # 通过列表推到式,把结果转换为列表 res2 = [i for i in res1] print(res2) # 输出是:[5, 6, 7, 8]
- reduce()函数
reduce()函数的参数是:一个函数,一个可迭代对象
reduce()函数主要实现的是对函数的反复的调用,最终可以得到积累的结果,# 通过functools导入reduce from functools import reduce # 函数实现的是参数相乘 f = lambda x, y: x * y l = [1, 2, 3, 4, 5] # 返回从1至5的乘积 r1 = reduce(f, l) print(r1) # 输出时:120
- filter()函数
filter()函数的参数是:一个函数,一个可迭代对象
filter()函数主要实现的是筛选过滤,可以将可迭代对象力的每个元素依次作用于过滤函数l = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] # 函数实现的是筛选出偶数 f = lambda x: x % 2 == 0 r1 = filter(f, l) # 结果是一filter对象 print(r1) # 通过列表推到式,把结果转换为列表 r2 = [x for x in r1] print(r2) # 输出是:[2, 4, 6, 8, 10]
自定义高阶函数
高阶函数的本质就是函数的参数有一个函数,通过传进来的函数,对传进来的其他参数进行操作,所以我们可以根据自己的需求自定义自己的高阶函数