25 Python常用函数——reduce()

在 Python 3.x 中,reduce() 不是内置函数,而是放到了标准库 functools 中,需要先导入再使用。

标准库 functools 中的函数 reduce() 可以将一个接受两个参数的函数以迭代累积的方式从左到右依次作用到一个序列或迭代器对象的所有元素上,并且允许指定一个初始值。

cpp 复制代码
from functools import reduce

# 计算过程为 ((((1+2)+3)+4)+5)
print(reduce(lambda i, j: i + j, [1, 2, 3, 4, 5]))


def get(x, y):
    return x + y


print(reduce(get, list(range(10))))
print(reduce(get, range(10)))  # 可以不用转换为列表
print(reduce(lambda i, j: i + j, range(10)))  # 使用 lambda 表达式实现相同功能

import operator  # 保准库 operator 提供了大量运算

print(operator.add(128, 64))  # 可以像普通函数一样直接调用

print(reduce(operator.add, range(10)))
print(reduce(operator.mul, range(1, 10)))  # 乘法运算
print(reduce(operator.add, range(10), 5))  # 指定累加的初始值为5
print([reduce(operator.add, map(str, range(10)))])  # 转换成字符串再累加
print([''.join(map(str, range(10)))])  # 使用join方法实现字符串连接
print(reduce(operator.add, [[1, 2], [3], []], ['@']))  # 这个操作占用空间较大,慎用
相关推荐
紫小米12 小时前
后端日志管理
python·fastapi
你不是我我12 小时前
【Java 开发日记】HTTP3 性能更好,为什么内网微服务依然多用 HTTP2?HTTP2 内网优势是什么?
java·开发语言·微服务
tjl521314_2113 小时前
04C++ 名称空间(Namespace)
开发语言·c++
赏金术士13 小时前
Kotlin 数据流与单双向绑定
android·开发语言·kotlin
白雪茫茫13 小时前
监督学习、半监督学习、无监督学习算法详解
python·学习·算法·ai
つ安静与叛逆的小籹人13 小时前
小红书API:通过笔记ID获取笔记详情数据教程
笔记·python
05候补工程师13 小时前
[实战复盘] 拒绝 AI 屎山!我从设计模式中学到的“调教”AI 新范式
人工智能·python·设计模式·ai·ai编程
逻辑驱动的ken14 小时前
Java高频面试场景题25
java·开发语言·深度学习·面试·职场和发展
AI人工智能+电脑小能手14 小时前
【大白话说Java面试题】【Java基础篇】第32题:Java的异常处理机制是什么
java·开发语言·后端·面试
阿豪只会阿巴15 小时前
【没事学点啥】TurboBlog轻量级个人博客项目——项目介绍
javascript·python·django·html