文档章节

## 人生苦短我用python[0x07] map() & reduce() ##

ali安东尼
 ali安东尼
发布于 2017/07/14 14:54
字数 405
阅读 2
收藏 0

<font color=red>文章内容为原创,欢迎转载请注明出处</font>

作者: EflyPro->晦明禅师

MapReduce是Google提出的一个软件架构,用于大规模数据集(大于1TB)的并行运算。 概念“Map(映射)”和“Reduce(归纳)”,及他们的主要思想,都是从函数式编程语言借来的,还有从矢量编程语言借来的特性。--维基百科

今天我们来看看python提供的map()和reduce()函数,可以帮助大家理解MapReduce的思想,用python代码理解还是挺直观的。

map()

map函数是把右边的输入列表元素作为左边函数的参数传入,并把函数返回值组织成对应的list结果返回

>>> def fx(x):
...     return x*x
... 
>>> map(fx, [1,2,3,4,5])
[1, 4, 9, 16, 25]
#实现对列表值的平方计算

reduce()

reduce函数是也是接收2个参数,左边是函数,右边是列表,把右边列表的前面两个元素作为函数参数传入并把返回值继续和列表的第3个元素进行再次函数调用,如此类推一直到全部处理完为止,下面是一个比较形象的公式。

reduce(fx, [x1, x2, x3, x4]) = fx(fx(fx(x1, x2), x3), x4)

再用一个实际例子就比较清晰了

>>> def fx(x, y):
...     return x + y
... 
>>> reduce(fx, [1,2,3,4,5])
15
#实现从1-5的数列求和
#上面的例子转换成一下每一步就是
# 1  fx(1,2) = 3
# 2  fx(3,3) = 6
# 3  fx(6,4) = 10
# 4  fx(10,5) = 15

由睿江云提供,想了解更多,请登陆www.eflycloud.com

© 著作权归作者所有

共有 人打赏支持
ali安东尼
粉丝 3
博文 192
码字总数 173101
作品 0
广州
私信 提问
Python进阶系列连载(13)——Python内置高阶函数filter(下)

前言 进阶部分连载继续~ 如果还没看过我的入门连载部分,先看: https://ask.hellobi.com/blog/wangdawei/10288 当然,小编的免费入门课程已经有咯,看过连载的朋友可以看看视频再快速梳理一...

ID王大伟
04/28
0
0
资源 | Python技巧 101:这17个骚操作你都Ok吗

  选自Hackernoon   作者:Gautham Santhosh   机器之心编译      Python 是一门非常优美的语言,其简洁易用令人不得不感概人生苦短。在本文中,作者 Gautham Santhosh 带我们回顾...

机器之心
08/19
0
0
推荐几个适合新人上手的Python项目

人生苦短,我用Python! Python的前景光明不许要过多赘述了,那么作为新人如何快速上手这门语言呢?废话不多说,今天给大家分享三个极实用的Python爬虫案例。 1 爬取网站美图 爬取图片是最常...

芜湖达内科技
06/25
0
0
Python3-多线程使用,就这么简单

  前言      多个任务可以由多个进程完成,也可以由一个进程多个线程来完成。Python2标准库中提供了两个模块支持多线程,thread和threading。其中,threading是对thread的封装,threa...

linux运维菜
前天
0
0
《Python Cookbook》第三版中文版

人生苦短,我用 python! 我一直坚持使用 python3,因为它代表了python的未来。虽然向后兼容是它的硬伤,但是这个局面迟早会改变的, 而且python3的未来需要每个人的帮助和支持。 目前市面上...

一刀
2015/01/07
0
32

没有更多内容

加载失败,请刷新页面

加载更多

day150-2018-11-17-英语流利阅读-待学习

歪果仁也疯狂:海外版抖音的征途 毛西 2018-11-17 1.今日导读 海外版抖音 TikTok 于 2017 年 5 月上线海外,至今覆盖全球 150 多个国家和地区,月活跃用户数已突破 5 亿。然而,“出海”的抖...

飞鱼说编程
今天
4
0
分布式学习最佳实践:从分布式系统的特征开始(附思维导图)

什么是分布式系统 回到顶部   分布式系统是由一组通过网络进行通信、为了完成共同的任务而协调工作的计算机节点组成的系统。分布式系统的出现是为了用廉价的、普通的机器完成单个计算机无法...

dragon_tech
今天
4
0
TOKEN设计

TOKEN设计 Api_Token 首先需要知道API是什么? API(Application Programming Interface)即应用程序接口。你可以认为 API 是一个软件组件或是一个 Web 服务与外界进行的交互的接口。而我们在...

DrChenXX
今天
3
0
浅谈“李氏代换”——从纪念金庸和斯坦李说起

李氏代换(LSP)简介 李氏代换是软件设计的一个原则,又名依赖倒转原则或依赖倒置原则,其衍生原则有接口分离原则等。该原则由Barbara Liskov于1988年提出。 该原则指出,程序中高级别的元素...

SamYjy
今天
33
0
JavaScript实现在线websocket WSS测试工具 -toolfk程序员工具网

本文要推荐的[ToolFk]是一款程序员经常使用的线上免费测试工具箱,ToolFk 特色是专注于程序员日常的开发工具,不用安装任何软件,只要把内容贴上按一个执行按钮,就能获取到想要的内容结果。T...

toolfk
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部