map/reduce

Posted rain_1 ACM风雨历程

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了map/reduce相关的知识,希望对你有一定的参考价值。

t = list(map(str, [1, 2, 3, 4, 5, 6, 7, 8, 9]))
print(t)

t = (x * x for x in range(10))
print(t)
for value in t:
    print(value)
from collections import Iterator
t2 = isinstance(t, Iterator)
print(t2)

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

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

比方说对一个序列求和,就可以用reduce实现:

>>> from functools import reduce
>>> def add(x, y):
...     return x + y
...
>>> reduce(add, [1, 3, 5, 7, 9])
25

当然求和运算可以直接用Python内建函数sum(),没必要动用reduce

但是如果要把序列[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

以上是关于map/reduce的主要内容,如果未能解决你的问题,请参考以下文章

Python 之内置函数:filter、map、reduce、zip、enumerate

Python 高阶函数 -- map/reduce

如何在R中写入map reduce?

Python函数式编程 map reduce filter

Apache Crunch 管道如何生成 map reduce 作业?

1lambda是什么?及filter,map,reduce