python中reduce()函数的使用方法示例


Posted in Python onSeptember 29, 2017

前言

本文主要给大家介绍了关于python中reduce()函数使用的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍:

reduce()函数在库functools里,如果要使用它,要从这个库里导入。reduce函数与map函数有不一样地方,map操作是并行操作,reduce函数是把多个参数合并的操作,也就是从多个条件简化的结果,在计算机的算法里,大多数情况下,就是为了简单化。比如识别图像是否是一只猫,那么就是从众多的像素里提炼出来一个判断:是或否。可能是几百万个像素,就只出来一个结果。在GOOGLE大规模集群里,就是利用这个思想,把前面并行处理的操作叫做map,并行处理之后的结果,就需要简化,归类,把这个简化和归类的过程就叫做reduce。由于reduce只能在一台主机上操作,并不能分布式地处理,但是reduce处理的是map结果,那么意味着这些结果已经非常简单,数据量大大减小,处理起来就非常快。

因此可以把mapreduce过程叫做分析归纳的过程。

看一下面reduce()的例子:

#python 3. 6 
#蔡军生 
#http://blog.csdn.net/caimouse/article/details/51749579 
# 
from functools import reduce 
 
result = reduce(lambda x, y: x+y, [1, 2, 3, 4, 5]) 
print(result)

输出结果:

15

在这个例子里,其实计算过程是这样的:

((((1+2)+3)+4)+5)

python中reduce()函数的使用方法示例

再看一个阶乘的例子:

#python 3. 6 
#蔡军生 
#http://blog.csdn.net/caimouse/article/details/51749579 
# 
from functools import reduce 
 
n = 3 
print(reduce(lambda x, y: x * y, range(1, n + 1))) # 6

输出结果:

6

reduce函数,reduce函数会对参数序列中元素进行累积。

reduce函数的定义:

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

function参数是一个有两个参数的函数,reduce依次从sequence中取一个元素,和上一次调用function的结果做参数再次调用function。

第一次调用function时,如果提供initial参数,会以sequence中的第一个元素和initial作为参数调用function,否则会以序列sequence中的前两个元素做参数调用function。

reduce(lambda x, y: x + y, [2, 3, 4, 5, 6], 1)

结果为21(  (((((1+2)+3)+4)+5)+6)  )

reduce(lambda x, y: x + y, [2, 3, 4, 5, 6])

结果为20

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

Python 相关文章推荐
Python创建文件和追加文件内容实例
Oct 21 Python
Python Web框架Flask中使用百度云存储BCS实例
Feb 08 Python
Python实现统计给定列表中指定数字出现次数的方法
Apr 11 Python
tensorflow 获取模型所有参数总和数量的方法
Jun 14 Python
python和opencv实现抠图
Jul 18 Python
对python中dict和json的区别详解
Dec 18 Python
从0开始的Python学习014面向对象编程(推荐)
Apr 02 Python
python学习——内置函数、数据结构、标准库的技巧(推荐)
Apr 18 Python
python实现远程控制电脑
May 23 Python
python设置环境变量的原因和方法
Jun 24 Python
Django配置Bootstrap, js实现过程详解
Oct 13 Python
Python之京东商品秒杀的实现示例
Jan 06 Python
Django Admin 实现外键过滤的方法
Sep 29 #Python
python 调用c语言函数的方法
Sep 29 #Python
python文件名和文件路径操作实例
Sep 29 #Python
Python 实现简单的shell sed替换功能(实例讲解)
Sep 29 #Python
Python 基础教程之闭包的使用方法
Sep 29 #Python
python下实现二叉堆以及堆排序的示例
Sep 29 #Python
Python数据结构与算法之链表定义与用法实例详解【单链表、循环链表】
Sep 28 #Python
You might like
在DC的漫画和电影中,蝙蝠侠的宿敌,小丑的真名是什么?
2020/04/09 欧美动漫
PHP程序61条面向对象分析设计的经验小结
2008/11/12 PHP
PHP开发框架kohana3 自定义路由设置示例
2014/07/14 PHP
PHP使用array_multisort对多个数组或多维数组进行排序
2014/12/16 PHP
php strftime函数获取日期时间(switch用法)
2018/05/16 PHP
namespace.js Javascript的命名空间库
2011/10/11 Javascript
5个javascript的数字格式化函数分享
2011/12/07 Javascript
一个简单的js树形菜单
2011/12/09 Javascript
jQuery getJSON()+.ashx 实现分页(改进版)
2013/03/28 Javascript
JS运动基础框架实例分析
2015/03/03 Javascript
使用window.prompt()实现弹出用户输入的对话框
2015/04/13 Javascript
学习Bootstrap组件之下拉菜单
2015/07/28 Javascript
属于你的jQuery提示框(Tip)插件
2016/01/20 Javascript
浅谈js中的三种继承方式及其优缺点
2016/08/10 Javascript
详解Javascript中prototype属性(推荐)
2016/09/03 Javascript
JS 循环li添加点击事件 (闭包的应用)
2016/12/10 Javascript
AngularJS实现tab选项卡的方法详解
2017/07/05 Javascript
js指定步长实现单方向匀速运动
2017/07/17 Javascript
微信小程序实现聊天对话(文本、图片)功能
2018/07/06 Javascript
解决vue 打包发布去#和页面空白的问题
2018/09/04 Javascript
jquery的$().each和$.each的区别
2019/01/18 jQuery
JS使用对象的defineProperty进行变量监控操作示例
2019/02/02 Javascript
js Math数学简单使用操作示例
2020/03/13 Javascript
js实现磁性吸附的示例
2020/10/26 Javascript
python面向对象多线程爬虫爬取搜狐页面的实例代码
2018/05/31 Python
Selenium鼠标与键盘事件常用操作方法示例
2018/08/13 Python
python中强大的format函数实例详解
2018/12/05 Python
详解python列表生成式和列表生成式器区别
2019/03/27 Python
python3.8与pyinstaller冲突问题的快速解决方法
2020/01/16 Python
HEMA英国:荷兰原创设计
2018/08/28 全球购物
MIKI HOUSE美国官方网上商店:日本领先的婴儿和儿童高级时装品牌
2020/06/21 全球购物
建龙钢铁面试总结
2014/04/15 面试题
师范生教育见习总结
2015/06/23 职场文书
python爬取某网站原图作为壁纸
2021/06/02 Python
Vue中使用import进行路由懒加载的原理分析
2022/04/01 Vue.js
Redis主从复制操作和配置详情
2022/09/23 Redis