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调用windows api锁定计算机示例
Apr 17 Python
Python入门篇之文件
Oct 20 Python
Python基于pygame实现的弹力球效果(附源码)
Nov 11 Python
定制FileField中的上传文件名称实例
Aug 23 Python
利用Python在一个文件的头部插入数据的实例
May 02 Python
Python实现求解一元二次方程的方法示例
Jun 20 Python
Python 数据库操作 SQLAlchemy的示例代码
Feb 18 Python
Django之创建引擎索引报错及解决详解
Jul 17 Python
PyTorch中permute的用法详解
Dec 30 Python
Python如何实现在字符串里嵌入双引号或者单引号
Mar 02 Python
Python3标准库glob文件名模式匹配的问题
Mar 13 Python
pycharm实现猜数游戏
Dec 07 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
通过文字传递创建的图形按钮
2006/10/09 PHP
php中看实例学正则表达式
2006/12/25 PHP
使用PHP会话(Session)实现用户登陆功能
2013/06/29 PHP
Php output buffering缓存及程序缓存深入解析
2013/07/15 PHP
php获得文件大小和文件创建时间的方法
2015/03/13 PHP
PHP中检查isset()和!empty()函数的必要性
2019/02/13 PHP
获取页面高度,窗口高度,滚动条高度等参数值getPageSize,getPageScroll
2006/09/22 Javascript
Javascript实例教程(19) 使用HoTMetal(3)
2006/12/23 Javascript
JS 的应用开发初探(mootools)
2009/12/19 Javascript
jquery getScript动态加载JS方法改进详解
2012/11/15 Javascript
JavaScript判断密码强度(自写代码)
2013/09/06 Javascript
jquery复选框全选/取消示例
2013/12/30 Javascript
js过滤特殊字符输入适合输入、粘贴、拖拽多种情况
2014/03/22 Javascript
Javascript封装DOMContentLoaded事件实例
2014/06/12 Javascript
$.each遍历对象、数组的属性值并进行处理
2014/07/18 Javascript
javascript操作数组详解
2014/12/17 Javascript
基于BootStrap Metronic开发框架经验小结【二】列表分页处理和插件JSTree的使用
2016/05/12 Javascript
AngularJS 输入验证详解及实例代码
2016/07/28 Javascript
JavaScript简单实现合并两个Json对象的方法示例
2017/10/16 Javascript
详解VUE 数组更新
2017/12/16 Javascript
浅谈vue.js导入css库(elementUi)的方法
2018/03/09 Javascript
小程序兼容安卓和IOS数据处理问题及坑
2018/09/18 Javascript
Django+vue跨域问题解决的详细步骤
2019/01/20 Javascript
[01:06:43]完美世界DOTA2联赛PWL S3 PXG vs GXR 第二场 12.19
2020/12/24 DOTA
Python中元组,列表,字典的区别
2017/05/21 Python
python调用函数、类和文件操作简单实例总结
2019/11/29 Python
PyCharm使用Docker镜像搭建Python开发环境
2019/12/26 Python
Jupyter Notebook输出矢量图实例
2020/04/14 Python
python实现密度聚类(模板代码+sklearn代码)
2020/04/27 Python
HTML5 Web 存储详解
2016/09/16 HTML / CSS
Clarks鞋美国官网:全球领军鞋履品牌
2017/05/13 全球购物
中学教师培训制度
2014/01/31 职场文书
研讨会主持词
2014/04/02 职场文书
中秋节随笔
2015/08/15 职场文书
创业计划书之面包店
2019/09/17 职场文书
详解非极大值抑制算法之Python实现
2021/06/28 Python