一、核心概念
高阶函数:可以把函数当作参数传入的函数。Python 最常用三个内置高阶函数:map、filter、reduce
1. map () 映射
作用:对可迭代对象每个元素统一做加工处理,返回迭代器。语法:map(函数, 可迭代对象)
底层逻辑:遍历每个元素,依次传给函数处理,返回新结果。示例:
python
运行
lst = [1,2,3] res = list(map(lambda x:x*2, lst)) print(res) # [2,4,6]口诀:逐个加工,一变一
2. filter () 过滤
作用:按自定义条件筛选元素,只保留结果为True的。语法:filter(判断函数, 可迭代对象)
底层逻辑:遍历元素,用函数做真假判断,符合条件才保留。示例:
python
运行
lst = [1,2,3,4,5] res = list(filter(lambda x:x%2==0, lst)) print(res) # [2,4]口诀:条件筛选,留真去假
3. reduce () 归约累加
位置:在functools模块,需要导入作用:把序列从左到右两两合并,最终归约成一个值。语法:reduce(合并函数, 可迭代对象, 初始值)
底层逻辑:先拿第一个数,再和下一个数运算,结果再和下一个运算,直到算出唯一结果。示例:
python
运行
from functools import reduce lst = [1,2,3,4] res = reduce(lambda x,y:x+y, lst) print(res) # 10口诀:两两合并,多变一
一句话区分
- map:改每一个元素(加工)
- filter:筛一部分元素(过滤)
- reduce:所有元素合并成一个(归约)