Python中的reduce内建函数使用方法指南
reduce()
是 Python 中的一个内建函数,它逐个对可迭代对象中的元素使用指定的函数进行计算,并返回最终的结果。
语法
reduce()
函数的语法如下:
reduce(function, iterable[, initializer])
参数说明:
function
:计算函数,接受2个参数,第一个参数是累计器(上次计算的结果),第二个参数是循环到的当前元素。函数返回的结果作为下次迭代的累计器传入函数。iterable
:可迭代对象。initializer
:可选,作为第一次函数调用的累计器的值。如果没有指定,将使用可迭代对象中的第一个元素作为初始值。
示例说明
下面给出两个示例,帮助理解使用 reduce()
函数的方法。
示例一:求和
用 reduce()
函数计算列表中所有元素的和。
from functools import reduce
lst = [1, 2, 3, 4, 5]
result = reduce(lambda x, y: x+y, lst)
print(result) # 15
上述代码中,lambda 表达式用于将两个参数相加。 reduce()
函数按照下面的方式依次计算:
第一次计算:第一个参数是 1,第二个参数是 2,函数返回 3,下次累计器的值为 3。
第二次计算:第一个参数是 3,第二个参数是 3,函数返回 6,下次累计器的值为 6。
第三次计算:第一个参数是 6,第二个参数是 4,函数返回 10,下次累计器的值为 10。
第四次计算:第一个参数是 10,第二个参数是 5,函数返回 15,最终结果为 15。
示例二:寻找最大值
用 reduce()
函数寻找列表中的最大值。
from functools import reduce
lst = [1, 3, 5, 7, 4, 2]
result = reduce(lambda x, y: x if x > y else y, lst)
print(result) # 7
上述代码中,lambda 表达式用于比较两个参数的大小,返回较大的值。 reduce()
函数按照下面的方式依次计算:
第一次比较:第一个参数是 1,第二个参数是 3,返回 3。
第二次比较:第一个参数是 3,第二个参数是 5,返回 5。
第三次比较:第一个参数是 5,第二个参数是 7,返回 7。
第四次比较:第一个参数是 7,第二个参数是 4,返回 7。
第五次比较:第一个参数是 7,第二个参数是 2,返回 7。
因此 reduce()
函数返回的结果是 7,即列表中的最大值。
小结
以上就是 Python 中 reduce()
函数的用法说明。需要注意的是,在使用时需要先导入 functools
模块。 reduce()
对于简单的计算可以用循环代替,但对于一些复杂的计算,使用reduce()
可以简化代码,提高可读性。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python中的reduce内建函数使用方法指南 - Python技术站