Python reduce函数

Python reduce函数教程

Python 中的 reduce() 函数是对传入的 参数 序列中的每一个元素进行累积操作。

在 Python2 中,reduce 函数可以直接使用,在 Python3 中,reduce 函数使用之前需要使用 from functools import reduce 语句导入包。

Python reduce函数详解

Python 中的 reduce() 函数 将一个数据集合中的所有数据进行下列操作:

  1. 用传给 reduce 中的函数 function(有两个参数)先对集合中的第 1、2 个元素进行操作
  2. 得到的结果再与第三个数据用 function 函数运算
  3. 一直这样重复,直到所有的元素都处理完毕后得到一个结果,并返回。

Python reduce函数详解

语法

reduce(function, iterable[, initializer])

参数

参数 描述
function 我们需要传入的函数,这个函数可以是内置的,也可以是自己定义,或者是 匿名函数,该函数有两个参数。
iterable 一个可迭代对象,如 列表字符串元祖字典 等等。
initializer 可选参数,初始参数。

返回值

对 iterable 里的每个元素做累积处理,处理完毕后返回。

案例

Python reduce函数

Python reduce 函数过滤元素

from functools import reduce print("嗨客网(www.haicoder.net)") def add(num1, num2): return num1 + num2 reduce_res = reduce(add, [1, 2, 3, 4, 5, 6]) print("reduce_res =", reduce_res)

程序运行后,控制台输出如下:

67_python reduce函数.png

首先,我们定义了一个函数 add,该函数传入两个参数,该函数实现的功能是求传入的两个参数的和。 接着,我们使用 reduce 函数,第一个参数传入了自定义的 add 函数,第二个参数传入了一个列表,列表中有六个元素。

最后,我们使用 变量 reduce_res 来接受 reduce 函数对列表每个元素累积后的返回值,我们发现,最终输出了我们传入的列表中的所有元素的和。

Python reduce函数

Python reduce 函数可以使用 lambda 表达式

from functools import reduce print("嗨客网(www.haicoder.net)") reduce_res = reduce(lambda x, y: x+y, [1, 2, 3, 4, 5, 6]) print("reduce_res =", reduce_res)

程序运行后,控制台输出如下:

68_python reduce函数.png

我们使用 reduce 加上 lambda 表达式同样实现了求传入的列表中的所有的元素的和的功能。

Python reduce函数总结

Python 中的 reduce() 函数是对传入的参数序列中的每一个元素进行累积操作。在 Python2 中,reduce 函数可以直接使用。

在 Python3 中,reduce 函数使用之前需要使用 from functools import reduce 语句导入包。Python reduce 函数语法:

reduce(function, iterable[, initializer])