添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

①从参数方面来讲:

map()函数:

map()包含两个参数,第一个是参数是一个函数,第二个是序列(列表或元组)。其中,函数(即map的第一个参数位置的函数)可以接收一个或多个参数。

reduce()函数:

reduce() 第一个参数是函数,第二个是 序列(列表或元组)。但是,其函数必须接收两个参数。

②从对传进去的数值作用来讲:

map()是将传入的函数依次作用到序列的每个元素,每个元素都是独自被函数“作用”一次;(请看下面的栗子)

reduce()是将传人的函数作用在序列的第一个元素得到结果后,把这个结果继续与下一个元素作用(累积计算),

最终结果是所有的元素相互作用的结果。(请看下面的栗子)

举个栗子:

map()函数:

[python] view plain copy

  1. # 传入一个参数
  2. def one_p(x):
  3. return x * x
  4. print 'map1.1:', map(one_p, range(1, 5))
  5. #结果:map1.1: [1, 4, 9, 16]
  6. print 'map1.2:', map(one_p, [1, 2, 3, 4, 5, 6])
  7. #结果:map1.2: [1, 4, 9, 16, 25, 36]
  8. # 传入多个参数
  9. a = [1, 2, 3, 4, 5]
  10. b = [1, 1, 6, 2, 3]
  11. c = [1, 2, 3, 4, 5]
  12. s = map(lambda (x, y, z): x * y * z, zip(a, b, c))
  13. print 'map2:', s
  14. #结果:map2: [1, 4, 54, 32, 75]

reduce()函数:

[python] view plain copy

  1. r1 = reduce(lambda x, y: x * y, (2, 2, 6, 2))  #运算过程:(((2*2)*6)*2)
  2. r2 = reduce(lambda x, y: x * y, (2, 2, 6), 2)  #<span style="font-family: Arial, Helvetica, sans-serif;">运算过程:(((2*2)*6)*2)</span>
  3. print 'r1:', r1  # 结果:r1: 48
  4. print 'r2:', r2  # 结果:r2: 48

zip() 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表。

如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同,利用 * 号操作符,可以将元组解压为列表。

  1. >>>a = [1,2,3]

  2. >>> b = [4,5,6]

  3. >>> c = [4,5,6,7,8]

  4. >>> zipped = zip(a,b) # 打包为元组的列表

  5. [(1, 4), (2, 5), (3, 6)]

  6. >>> zip(a,c) # 元素个数与最短的列表一致

  7. [(1, 4), (2, 5), (3, 6)]

  8. >>> zip(*zipped) # 与 zip 相反,可理解为解压,返回二维矩阵式

  9. [(1, 2, 3), (4, 5, 6)]

列表元素依次相连:

# -*- coding: UTF-8 -*-
l = ['a', 'b', 'c', 'd', 'e','f']
print l
#打印列表
print zip(l[:-1],l[1:])

输出结果:

['a', 'b', 'c', 'd', 'e', 'f']
[('a', 'b'), ('b', 'c'), ('c', 'd'), ('d', 'e'), ('e', 'f')]
reduce ()函数在库functools里,如果要 使用 它,要从这个库里导入。 reduce 函数与 map 函数有不一样地方, map 操作是并行操作, reduce 函数是把多个参数合并的操作,也就是从多个条件简化的结果,在计算机的算法里,大多数情况下,就是为了简单化。比如识别图像是否是一只猫,那么就是从众多的像素里提炼出来一个判断:是或否。可能是几百万个像素,就只出来一个结果。在GOOGLE大规模集群里,就... reduce 为累计器, reduce 虽然可以用来处理数据结构并进行数据结构的重组,但是规范来讲,一般不采取这样的做法,通常只是用 reduce 进行累计计算,返回一个对象或数值型的累积结果 map 为迭代器,通常用于处理数据结构的所有数据,并进行数据结构的重构 通过遍历数组并 使用 三元表达式判断完成数组信息的重构 map ()主要是映射,进行并行运算,而 reduce ()如其名,减少,归纳, map ()函数有两个参数(类型),第一个参数是函数,第二个参数是一个序列(从第二个起,可以有多个参数,根据第一个参数函数接受的参数来定) reduc()e函数有两个参数,但是 区别 在于 reduce ()第一个参数的函数必须接受两个参数 话不多说,直接摆例子 map (): l = [1, 2, 3, 4] def func(x, y): print("%s,%s"%(x,y)) x = x+2 在 python 3中: zip () 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的对象,这样做的好处是节约了不少的内存。 我们可以 使用 list() 转换来输出列表。 如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同,利用 * 号操作符,可以将元组解压为列表。 2.返回值: python 2直接返回一个元组列表 map redue是根据谷歌的三大论文里面的 map reduce paper的出来的一个hadoop计算引擎。 我们现在可以说是ZB时代了,日益所需的大数据时代让我们不得不 使用 分布式存储,分布式计算,分布式调度。以往的单台计算机已经存储不了我们的数据,也不能很快的计算我们想要实现的过程。 今天,就来讨论讨论分布式计算的 map reduce map reduce 分成 map 端和 reduce 端。 ma... 在 python 编码过程中,实际上是写机器学习代码过程中,我发现有三个高频函数被 使用 ,也就是这篇博客要介绍的 zip map 以及 reduce 三大函数。 其中 map zip python 的内置函数,也就是全局函数,在 python 3中 reduce 函数不再是内置函数,它被放在了functools模块中了。 对于内置函数我们可以在 python 窗口界面中通过help(func)命令方式获取其 使用 方法。 一、zi... ①从参数方面来讲: map ()函数: map ()包含两个参数,第一个是参数是一个函数,第二个是序列(列表或元组)。其中,函数(即 map 的第一个参数位置的函数)可以接收一个或多个参数。 reduce ()函数: reduce () 第一个参数是函数,第二个是 序列(列表或元组)。但是,其函数必须接收两个参数。②从对传进去的数值作用来讲: map ()是将传入的函数依次作用到序列的每个元素,每个元素都是... 1, reduce 上代码:from functools import reduce sum1 = reduce (lambda x, y: x + y, range(1, 5)) print(sum1)  # 10输出结果:10结论: reduce 返回的是函数经过执行运算后的结果, reduce 累计运算,适合做大数据的运算,前两个元素作用得到结果后,继续和下一个元素运算2. map 上代码:sum2 = m... 1、并行遍历: zip map 内置的 zip 函数可以让我们 使用 for循环来并行 使用 多个序列。在基本运算中, zip 会取得一个或多个序列为参数,然后返回元组的列表,将这些序列中的并排的元素配成对。 L1 = [1,2,3,4] L2 = [5,6,7,8]