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 相关文章推荐
python3 发送任意文件邮件的实例
Jan 23 Python
python监控进程脚本
Apr 12 Python
Python基于分析Ajax请求实现抓取今日头条街拍图集功能示例
Jul 19 Python
一行Python代码过滤标点符号等特殊字符
Aug 12 Python
Python3从零开始搭建一个语音对话机器人的实现
Aug 23 Python
python实现简单成绩录入系统
Sep 19 Python
用Python实现校园通知更新提醒功能
Nov 23 Python
python入门之基础语法学习笔记
Feb 08 Python
Windows 下python3.8环境安装教程图文详解
Mar 11 Python
pytorch判断是否cuda 判断变量类型方式
Jun 23 Python
解决Python 函数声明先后顺序出现的问题
Sep 02 Python
PYTHON基于Pyecharts绘制常见的直角坐标系图表
Apr 28 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简单获取及判断提交来源的方法
2016/04/22 PHP
Mac地址验证的javascript代码
2013/11/09 Javascript
js 操作select与option(示例讲解)
2013/12/20 Javascript
JS根据变量保存方法名并执行方法示例
2014/04/04 Javascript
JS遍历Json字符串中键值对先转成JSON对象再遍历
2014/08/15 Javascript
jQuery回调函数的定义及用法实例
2014/12/23 Javascript
jQuery实现仿路边灯箱广告图片轮播效果
2015/04/15 Javascript
Javascript通过overflow控制列表闭合与展开的方法
2015/05/15 Javascript
jquery结婚电子请柬特效源码分享
2015/08/21 Javascript
jquery+CSS实现的水平布局多级网页菜单效果
2015/08/24 Javascript
基于Jquery制作图片文字排版预览效果附源码下载
2015/11/18 Javascript
js随机生成26个大小写字母
2016/02/12 Javascript
BootStrap学习系列之布局组件(下拉,按钮组[toolbar],上拉)
2017/01/03 Javascript
微信小程序 地图map详解及简单实例
2017/01/10 Javascript
JS判断字符串是否为整数的方法--简单的正则判断
2018/07/23 Javascript
微信小程序template模版的使用方法
2019/04/13 Javascript
中高级前端必须了解的JS中的内存管理(推荐)
2019/07/04 Javascript
vue实现鼠标移过出现下拉二级菜单功能
2019/12/12 Javascript
Vue 路由间跳转和新开窗口的方式(query、params)
2019/12/25 Javascript
vue中watch和computed为什么能监听到数据的改变以及不同之处
2019/12/27 Javascript
Vue自定义组件的四种方式示例详解
2020/02/28 Javascript
[01:24:34]2014 DOTA2华西杯精英邀请赛5 24 DK VS LGD
2014/05/25 DOTA
Python 查找list中的某个元素的所有的下标方法
2018/06/27 Python
pandas pivot_table() 按日期分多列数据的方法
2018/11/16 Python
在python中利用opencv简单做图片比对的方法
2019/01/24 Python
对python dataframe逻辑取值的方法详解
2019/01/30 Python
在python里协程使用同步锁Lock的实例
2019/02/19 Python
python matplotlib.pyplot.plot()参数用法
2020/04/14 Python
HTML5本地存储之Database Storage应用介绍
2013/01/06 HTML / CSS
Python文件操作的面试题
2013/06/22 面试题
优秀大学生推荐信范文
2013/11/28 职场文书
小学中秋节活动方案
2014/02/06 职场文书
办公室主任职责范本
2014/03/07 职场文书
工商局个人工作总结
2015/03/03 职场文书
亮剑观后感300字
2015/06/05 职场文书
2019开业庆典剪彩仪式主持词!
2019/07/22 职场文书