Python reduce()函数的用法详解
发布日期:2021-11-15 14:58:09
浏览次数:38
分类:技术文章
本文共 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 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
不错!
[***.144.177.141]2024年04月26日 10时23分32秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
【青少年编程】【Scratch】01 运动模块
2019-04-27
json的序列化与反序列化
2019-04-27
【第16周复盘】学习的飞轮
2019-04-27
如何利用pyecharts绘制炫酷的关系网络图?
2019-04-27
NCEPU:线下组队学习周报(007)
2019-04-27
【青少年编程】【二级】寻找宝石
2019-04-27
【组队学习】【26期】Linux教程
2019-04-27
解决 nginx: [error] open() “/usr/local/nginx/logs/nginx.pid“ failed (2: No such file or directory) 问题
2019-04-27
LeetCode-122. 买卖股票的最佳时机 II(Goland实现)
2019-04-27
LeetCode-136. 只出现一次的数字(Goland实现)
2019-04-27
go-递归实现二叉树的三种排序方式(前序、中序、后序)【详细】
2019-04-27
LeetCode-409. 最长回文串(Goland实现)
2019-04-27
LeetCode-LCP 18. 早餐组合(Goland实现)
2019-04-27
PDF - 如何 PDF 文档在全屏模式同时显示两页
2019-04-27
区块链 - 什么是区块链?这是我见过的最通俗易懂的解释
2019-04-27
区块链 - 侠客岛:终于有人把区块链讲清楚了
2019-04-27
PPT - 如何从 PowerPoint 幻灯片中删除幻灯片编号
2019-04-27
正则表达式 - 匹配任何字符(包括换行符)
2019-04-27
程序人生 - 5G来了!路由器和移动硬盘危险了?
2019-04-27
JS - mescroll.js 下拉刷新使用时应该注意的问题(卡顿,滑不动)
2019-04-27