博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
map/reduce
阅读量:6908 次
发布时间:2019-06-27

本文共 756 字,大约阅读时间需要 2 分钟。

map()函数接收两个参数,一个是函数,一个是可迭代对象Iterablemap将传入的函数依次作用到序列的每个元素,并把结果作为新的迭代器Iterator返回。

举例说明,比如我们有一个函数f(x)=x2,要把这个函数作用在一个list [1, 2, 3, 4, 5, 6, 7, 8, 9]上,就可以用map()实现如下:

>>> def f(x):...     return x * x...>>> r = map(f, [1, 2, 3, 4, 5, 6, 7, 8, 9])>>> list(r)[1, 4, 9, 16, 25, 36, 49, 64, 81]

map()传入的第一个参数是f,即函数对象本身。由于结果r是一个迭代器Iterator,迭代器Iterator是惰性序列,因此通过list()函数让它把整个序列都计算出来并返回一个list。

map()作为高阶函数,事实上它把运算规则抽象了。

 

 

reduce把一个函数作用在一个序列[x1, x2, x3, ...]上,这个函数必须接收两个参数,reduce把结果继续和序列的下一个元素做累积计算,其效果就是:

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

把序列[1, 3, 5, 7, 9]变换成整数13579reduce就可以派上用场:

>>> from functools import reduce>>> def fn(x, y):...     return x * 10 + y...>>> reduce(fn, [1, 3, 5, 7, 9])13579

 

转载于:https://www.cnblogs.com/imageSet/p/7535718.html

你可能感兴趣的文章
upc组队赛1 不存在的泳池【GCD】
查看>>
操作系统概念小结(1)
查看>>
计算两个日期相差年月日
查看>>
py QScrollArea
查看>>
centos 6 升级gcc
查看>>
Maatkit--Mysql的高级管理工具
查看>>
主要的开源镜像站点资源
查看>>
白酒防伪标签生产防窜货二维码制作印刷公司
查看>>
APP测试工具
查看>>
用NULL来构造string会出问题
查看>>
php转化输入日期为Unix 纪元到当前时间的秒数 日期筛选
查看>>
教程-经典Delphi教程网
查看>>
刨根问底:详解Hadoop核心架构(转载)
查看>>
LINUX下C语言编程基础
查看>>
《Python程序设计(第3版)》[美] 约翰·策勒(John Zelle) 第 1 章 答案
查看>>
IDEA 插件-码云
查看>>
Boost::Date_time库和time_from_string()函数的使用
查看>>
Linux定时任务crontab命令使用详解
查看>>
Example: Encoded SNMP Message - SNMP Tutorial
查看>>
【转】协方差的意义
查看>>