Python reduce()函数的用法详解
发布日期:2021-11-15 14:58:09 浏览次数:37 分类:技术文章

本文共 879 字,大约阅读时间需要 2 分钟。

今天刷题时又见识到了大佬精简的代码,所以特地学习了一下reduce的用法,在此记录。

reduce的语法格式

reduce(function, sequence[, initial]) -> value

reduce函数接受一个function和一串sequence,并返回单一的值,以如下方式计算:
1.初始,function被调用,并传入sequence的前两个items,计算得到result并返回
2.function继续被调用,并传入上一步中的result,和sequence种下一个item,计算得到result并返回。一直重复这个操作,直到sequence都被遍历完,返回最终结果。

注意1. 当initial值被指定时,传入step1中的两个参数分别是initial值和sequence的第一个items。reduce()最多只能接受三个参数,func,sequence,initial。

注意2. 在python2中reduce时内置函数,但是在python3中,它被移到functools模块,因此使用之前需要导入,如

>>> from  functools import reduce >>>a=[1, 2, 2, 1, 3, 3, 4, 1]>>> reduce(lambda x,y:x+y ,a)  #实现加法功能17>>>reduce(lambda x,y:x+y ,a,2)#指定initial值19

那么如果一开始sequence只有一个元素,并且没有设定initial,会不会报错呢?

>>> reduce(lambda x,y:x+y ,[2])2>>> reduce(lambda x,y:x*y ,[2])2'''可以发现并没有报错,但也不能判断是传入了具体什么值第一个例子中好像传入的是0,但第二个例子又好像是1'''

所以只需要记住只有一个参数的时候reduce()函数会返回它本身

总结

我们可能会发现这些功能,都可以用for loop来替代,但是reduce()使代码看起来更精简,而且运行性能更好,更准确。

转载地址:https://blog.csdn.net/qq_39751320/article/details/104353609 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:Python Collections.Counter()函数详解(统计字符频率
下一篇:Python 创建r行c列的矩阵

发表评论

最新留言

网站不错 人气很旺了 加油
[***.192.178.218]2024年04月18日 13时20分25秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章