map select reduce

map:
     针对每个element进行变换并返回整个修改后的map

     a.map do |item|
        a.upcase
     end

      a.map(&:upcase) 一样的效果, &:代表了item, 太简洁了,但格式难记。

reduce:
     把array变换为一个值后返回。 

     a.reduce(:+) #=> "abcD"

     (5..10).reduce(0) do |sum, value|
        sum + value
   end

      等于 (1..100).reduce(:+)

     reduct(0)里面的0是代表sum的初始值

select:
   根据条件返回一个子集   

   (1..8).select { |x| x % 2 == 0 } #=> [2, 4, 6, 8]

reject:
   根据条件剔除一个子集
   (1..8).reject { |x| x % 2 == 0 } #=> [1, 3, 5, 7] group_by:     根据条件组成Map        langs.group_by { |lang| lang[0] } #=> {"r"=>["ruby"], "p"=>["python", "perl"]} a=%w(chenxiao chenmin chensiheng xiaochen liyulong)  a.group_by{|item| item.index("chen") != nil} false=>["liyulong"], true=>["chenxiao", "chenmin", "chensiheng", "xiaochen"] Ruby you are the best friend of programmer!
时间: 2024-10-27 12:04:21

map select reduce的相关文章

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

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

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