reduce是functools模块中用于序列累积运算的函数,需传入二元函数、非空可迭代对象及可选初始值,如reduce(lambda x,y:x+y,[1,2,3,4])返回10。

uce 是 Python 中用于对序列进行累积运算的函数,它把一个二元函数(接受两个参数)依次作用在序列元素上,不断“折叠”整个序列,最终得到一个单一结果。
需要先导入
它不在内置命名空间里,得从 functools 模块导入:
from functools import reduce
基本用法:三要素缺一不可
调用形式是:reduce(函数, 序列[, 初始值])
- 函数:必须是接收两个参数的函数,比如
lambda x, y: x + y或operator.add - 序列:非空(如列表、元组),至少有一个元素
- 初始值(可选):如果提供,它会作为第一次调用函数时的左操作数;不提供时,用序列第一个元素当左操作数,第二个当右操作数
几个典型例子
✅ 求和:
立即学习“”;
给表格加链接,一般我们是不怎么使用表格的,但是有些时候我们会有这块的需求,企业网站或商城网站都可以使用,给表格加上链接,需要通过js来控制,php中文网推荐下载!
34 -
reduce(lambda x, y: x + y, [1, 2, 3, 4])→10(等价于(((1+2)+3)+4))
✅ 求积:
-
reduce(lambda x, y: x * y, [2, 3, 4])→24
✅ 带初始值(比如乘法默认值设为 1):
-
reduce(lambda x, y: x * y, [2, 3, 4], 1)→24;空列表也不会报错:reduce(lambda x, y: x * y, [], 1)→1
注意常见坑
- 空序列不带初始值会直接报
TypeError - 别和
sum()、max()这类专用函数较劲——它们更清晰、更快、更安全 - 嵌套逻辑复杂时,用循环或列表推导式通常比
reduce更易读
基本上就这些。用得少,但理解它有助于掌握函数式编程思想。
以上就是的uce怎么用的详细内容,更多请关注php中文网其它相关文章!
相关标签:
微信扫一扫打赏
支付宝扫一扫打赏
