Python中如何使用reduce函数?
·
1. 先记住关键点
- reduce 在
functools模块里,必须先导入 - 作用:把列表 / 可迭代对象从左到右两两累积计算,最后变成一个值
- 适合:累加、累乘、求最大、拼接字符串等归约汇总场景
2. 导入语法
python
运行
from functools import reduce
3. 基础语法
python
运行
reduce(函数, 可迭代对象, [初始值])
函数必须接收两个参数:
- 第一个:上一次累积的结果
- 第二个:当前遍历的元素
4. 经典示例
示例 1:列表累加求和
python
运行
from functools import reduce
lst = [1,2,3,4,5]
res = reduce(lambda x,y: x + y, lst)
print(res) # 15
执行过程:((((1+2)+3)+4)+5)
示例 2:列表累乘
python
运行
res = reduce(lambda x,y: x * y, lst)
print(res) # 120
示例 3:求列表最大值
python
运行
lst = [12,45,7,89,23]
res = reduce(lambda x,y: x if x>y else y, lst)
print(res) # 89
示例 4:带初始值
初始值会作为第一个计算的 x
python
运行
lst = [1,2,3]
# 初始值10,先算 10+1,再往后累加
res = reduce(lambda x,y:x+y, lst, 10)
print(res) # 16
示例 5:拼接字符串
python
运行
words = ["Hello"," ","Python","!"]
res = reduce(lambda x,y: x+y, words)
print(res) # Hello Python!
5. 易错点
- 忘了导入
from functools import reduce直接用会报错 - 传入的 lambda 必须两个参数,不能只写一个
- 空序列必须给初始值,否则报错
6. 一句话总结
reduce 就是从左往右两两合并,把一长串数据最终算出一个结果。
更多推荐
所有评论(0)