一、核心概念

高阶函数:可以把函数当作参数传入的函数。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:所有元素合并成一个(归约)

更多推荐