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代码来解图片迷宫的方法整理
Apr 02 Python
python实现括号匹配的思路详解
Aug 23 Python
python 获取一个值在某个区间的指定倍数的值方法
Nov 12 Python
对Python3 序列解包详解
Feb 16 Python
Python之lambda匿名函数及map和filter的用法
Mar 05 Python
Python 通过打码平台实现验证码的实现
May 13 Python
Python+OpenCv制作证件图片生成器的操作方法
Aug 21 Python
python__name__原理及用法详解
Nov 02 Python
python实现的多任务版udp聊天器功能案例
Nov 13 Python
Python3 shelve对象持久存储原理详解
Mar 23 Python
pandas中read_csv、rolling、expanding用法详解
Apr 21 Python
经验丰富程序员才知道的8种高级Python技巧
Jul 27 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
php smarty的预保留变量总结
2008/12/04 PHP
php获取新浪微博数据API实例
2013/11/12 PHP
php实现mysql数据库操作类分享
2014/02/14 PHP
php更新修改excel中的内容实例代码
2014/02/26 PHP
Thinkphp模板中截取字符串函数简介
2014/06/17 PHP
PHP Session机制简介及用法
2014/08/19 PHP
PHP实现懒加载的方法
2015/03/07 PHP
PHP中读取文件的几个方法总结(推荐)
2016/06/03 PHP
微信支付的开发流程详解
2016/09/13 PHP
php7安装mongoDB扩展的方法分析
2017/08/02 PHP
基于jquery打造的百分比动态色彩条插件
2012/09/19 Javascript
Javascript小技巧之生成html元素
2014/05/15 Javascript
js 通过cookie实现刷新不变化树形菜单
2014/10/30 Javascript
JS瀑布流实现方法实例分析
2016/12/19 Javascript
EasyUI的TreeGrid的过滤功能的解决思路
2017/08/08 Javascript
详解使用React.memo()来优化函数组件的性能
2019/03/19 Javascript
前端面试知识点目录一览
2019/04/15 Javascript
vue远程加载sfc组件思路详解
2019/12/25 Javascript
JavaScript鼠标拖拽事件详解
2020/04/03 Javascript
vue 扩展现有组件的操作
2020/08/14 Javascript
[00:30]塑造者的传承礼包-戴泽“暗影之焰”套装展示视频
2014/04/04 DOTA
[01:09:23]KG vs TNC 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/16 DOTA
python实现在控制台输入密码不显示的方法
2015/07/02 Python
Python使用Paramiko模块编写脚本进行远程服务器操作
2016/05/05 Python
python3爬虫获取html内容及各属性值的方法
2018/12/17 Python
python相对企业语言优势在哪
2020/06/12 Python
Application Cache未缓存文件无法访问无法加载问题
2014/05/31 HTML / CSS
美国新蛋IT数码商城:Newegg.com
2016/07/21 全球购物
SOA的常见陷阱或者误解是什么
2014/10/05 面试题
前台文员我鉴定
2014/01/12 职场文书
初中作文评语大全
2014/04/23 职场文书
10的分与合教学反思
2014/04/30 职场文书
后勤工作个人总结
2015/02/28 职场文书
工作推荐信模板
2015/03/25 职场文书
烈士陵园观后感
2015/06/08 职场文书
MySQL系列之六 用户与授权
2021/07/02 MySQL