map 和 reduce

注意:reduce需要 from functools import reduce

map的使用:

>>> def func(x):
...     return x*x
...
>>> [x for x in range(1,11)]
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>> l=[x for x in range(1,11)]
>>> l
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>> print(map(func,l))
<map object at 0x014E94F0>
>>> ll=list(map(func,l))                #重点用法
>>> ll
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

reduce用法:

>>> l=[i for i in range(1,6)]
>>> l
[1, 2, 3, 4, 5]
>>> def func(x,y):
...     return(x*10+y)
...

>>> reduce(func,l)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name ‘reduce‘ is not defined
                                                             #单个数乘10,组成一个整数
>>> from functools import reduce              #重点
>>> reduce(func,l)                                     #重点
12345

>>> ll=reduce(func,l)
>>> type(ll)
<class ‘int‘>                                            

dd

时间: 2024-12-19 10:32:03

map 和 reduce的相关文章

map和reduce的应用

这是一个利用map将字符串规范化(首字母大写,其余字母小写)的例子 #!/usr/bin/env python def lower2upper(s):     loop = 0     l = ''     for n in s:         if n.islower() and loop == 0:             l = l + n.upper()             loop += 1         elif n.isupper() and loop == 0:     

javascript中的map和reduce

今天在看"廖雪峰官方网站"的js教程时,看到了map和reduce.其中有一个练习题是:不使用js内置的parseInt()函数,利用map和reduce操作实现一个string2int()函数(先将字符串转换为数组,再将数组转换为从arr[0]到arr[arr.(length-1)]的一个数字.比如:把[1, 3, 5, 7, 9]变换成整数13579. 我的解法: function toNum(str) { var arr=[]; for(var i=0;i<str.leng

函数式编程 map,reduce,filter,lambda

原型:map(function, sequence),作用是将一个列表映射到另一个列表 map()函数接收两个参数,一个是函数,一个是Iterable, map将传入的函数依次作用到序列的每个元素,并把结果作为新的Iterator返回. def f(x): y = x * x return y r = map(f, range(10)) print(r) print(list(r)) print(list(map(str, [1, 2, 3, 4, 5, 6, 7, 8, 9]))) 原型:re

Python特殊语法:filter、map、reduce、lambda [转]

Python内置了一些非常有趣但非常有用的函数,充分体现了Python的语言魅力! filter(function, sequence):对sequence中的item依次执行function(item),将执行结果为True的item组成一个List/String/Tuple(取决于sequence的类型)返回:>>> def f(x): return x % 2 != 0 and x % 3 != 0 >>> filter(f, range(2, 25)) [5,

python中的zip、map、reduce 、lambda函数的使用。

lambda只是一个表达式,函数体比def简单很多. lambda的主体是一个表达式,而不是一个代码块.仅仅能在lambda表达式中封装有限的逻辑进去. lambda表达式是起到一个函数速写的作用.允许在代码内嵌入一个函数的定义. 如下例子: 定义了一个lambda表达式,求三个数的和. 再看一个例子: 用lambda表达式求n的阶乘. ------------------------------ lambda表达式也可以用在def函数中. 看例子: 这里定义了一个action函数,返回了一个l

MapReduce剖析笔记之七:Child子进程处理Map和Reduce任务的主要流程

在上一节我们分析了TaskTracker如何对JobTracker分配过来的任务进行初始化,并创建各类JVM启动所需的信息,最终创建JVM的整个过程,本节我们继续来看,JVM启动后,执行的是Child类中的Main方法,这个方法是如何执行的. 1,从命令参数中解析相应参数,获取JVMID.建立RPC连接.启动日志线程等初始化操作: 父进程(即TaskTracker)在启动子进程时,会加入一些参数,如本机的IP.端口.TaskAttemptID等等,通过解析可以得到JVMID. String ho

JavaScript实现Map、Reduce和Filter

1. [代码][JavaScript]代码     <script type="text/javascript">// 函数式编程:// 描述我们要做什么,而不是我们如何去做.这意味着我们工作在一个更高的抽象层次.函数式编程将导致更精巧.清晰和令人愉快的代码. // 最基础的forEachfunction forEach(array, action) {for (var i = 0; i < array.length; i++) {action(array[i]);}

Hadoop :map+shuffle+reduce和YARN笔记分享

今天在公司做了一个hadoop分享,包括mapreduce,及shuffle深度讲解,还有YARN框架的详细说明等. v\:* {behavior:url(#default#VML);} o\:* {behavior:url(#default#VML);} w\:* {behavior:url(#default#VML);} .shape {behavior:url(#default#VML);} Normal 0 false 7.8 磅 0 2 false false false EN-US

MapReduce剖析笔记之五:Map与Reduce任务分配过程

在上一节分析了TaskTracker和JobTracker之间通过周期的心跳消息获取任务分配结果的过程.中间留了一个问题,就是任务到底是怎么分配的.任务的分配自然是由JobTracker做出来的,具体来说,存在一个抽象类:TaskScheduler,主要负责分配任务,继承该类的有几个类: CapacityTaskScheduler.FairScheduler.JobQueueTaskScheduler(LimitTasksPerJobTaskScheduler又继承于该类). 从名字大致可以看出

Python【map、reduce、filter】内置函数使用说明

介绍下Python 中 map,reduce,和filter 内置函数的方法: 一:map map(...)     map(function, sequence[, sequence, ...]) -> list 说明: 对sequence中的item依次执行function(item),执行结果输出为list. 例子: >>> map(str, range(5))           [, , , , ]        >>>  add(n): n+>&