一、匿名函数 lambda
语法
python
运行
lambda 参数: 表达式- 没有函数名,一行写完简单逻辑
- 只能写一个表达式,不能写循环、if 块
- 自动返回表达式结果,不用写
return
示例
python
运行
# 普通函数 def add(x, y): return x + y # 匿名函数 add_lam = lambda x, y: x + y print(add_lam(3,5))常用:临时传参、配合高阶函数。
二、高阶函数
定义
满足任意一个就是高阶函数:
- 接收函数作为参数
- 返回一个函数
简单例子
python
运行
# 接收函数当参数 def calc(func, a, b): return func(a, b) res = calc(lambda x,y:x*y, 3, 4) print(res)作用:把逻辑当成参数传进去,代码更灵活、简洁。
三、map 映射
作用
对序列每个元素执行同一个函数,批量处理。
语法
python
运行
map(函数, 可迭代对象)示例
python
运行
lst = [1,2,3,4] # 每个元素平方 res = map(lambda x: x**2, lst) print(list(res)) # [1, 4, 9, 16]多序列映射:
python
运行
a = [1,2] b = [10,20] res = map(lambda x,y:x+y, a, b) print(list(res)) # [11, 22]四、filter 过滤
作用
按条件筛选保留符合条件的元素。
语法
python
运行
filter(判断函数, 可迭代对象)函数返回True保留,False舍弃。
示例
python
运行
lst = [1,2,3,4,5,6] # 只保留偶数 res = filter(lambda x: x%2==0, lst) print(list(res)) # [2, 4, 6]五、reduce 累积归约
作用
从左到右依次两两运算,最终合并成一个值需要先导入:from functools import reduce
语法
python
运行
reduce(函数, 序列)示例
python
运行
from functools import reduce lst = [1,2,3,4] # 累加:1+2+3+4 res = reduce(lambda x,y: x+y, lst) print(res) # 10 # 累乘 res2 = reduce(lambda x,y: x*y, lst) print(res2) # 24