
Python reduce()函数的用法详解
发布日期:2021-11-15 14:58:09
浏览次数:29
分类:技术文章
本文共 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 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
哈哈,博客排版真的漂亮呢~
[***.90.31.176]2023年06月09日 21时19分51秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
最新文章
justhost 上配置drupal 关联imce和wysiwyg
2019-07-27 20:08:55
Rails 3 时间日期相关的表单处理
2019-07-27 20:08:54
用javascript 转换时间格式 解析时间数据
2019-07-27 20:08:53
JavaScript 比较和逻辑运算符
2019-07-27 20:08:53
转个简单版JS 简体转繁体
2019-07-27 20:08:52
一些经常用到的Gemfile
2019-07-27 20:08:52
rails api 有用的链接
2019-07-27 20:08:51
linecache.rb:66 no such file to load -- require_relative
2019-07-27 20:08:50
Rails 3 - 3.1 用jquery代替prototype
2019-07-27 20:08:50
rails render partial 参数 变量说明
2019-07-27 20:08:49
Rails 3 的删除方法不能用了 delete put
2019-07-27 20:08:48
有关ruby load path
2019-07-27 20:08:48
Rails get put的一个区别
2021-09-29
ruby使用技巧
2021-09-29
jquery对于checkbox一些处理
2021-09-29
rails 3 undefined method `model_name' for ActiveRecord::Relation:Class.
2019-07-27 20:08:46
rails 3 generate scaffold 会用到
2019-07-27 20:08:45
ruby导出excel图
2019-07-27 20:08:44
macox mysql 5.5.10
2019-07-27 20:08:44
ruby 1.9 和 mongrel
2019-07-27 20:08:44