map:映射
reduce:归纳
简单来說,一个映射函数就是对一些独立元素组成的概念上的列表的每一个元素进行指定的操作。事实上,每个元素都是被独立操作的,而原始列表没有被更改,因为这里创建了一个新的列表来保存新的答案。这就是说,Map操作是可以高度并行的,这对高性能要求的应用以及并行计算领域的需求非常有用。
而归纳操作指的是对一个列表的元素进行适当的合并。虽然他不如映射函数那么并行,但是因为归纳总是有一个简单的答案,大规模的运算相对独立,所以归纳函数在高度并行环境下也很有用。
map(function, sequence)
map()接收两个参数,一个是函数,一个是序列。map()函数的功能是function依次作用于序列中的每一个元素,然后返回一个全新的序列。
In [92]: map(lambda x: x**2, [1,2,3,4,5])
Out[92]: [1, 4, 9, 16, 25]
reuce(function, sequence)
reduce()接收两个参数,一个是函数,一个是序列。reduce()函数的功能是function每次接受两个参数,然后对这两个参数进行操作,操作结果继续与序列中的下一个元素组成新的function参数,给function处理。
In [100]: reduce(lambda x,y:x+y, [1,2,3,4,5])
Out[100]: 15
In [101]: reduce(lambda x,y: x*10+y, [1,2,3,4,5])
Out[101]: 12345
网友评论