victory的博客

长安一片月,万户捣衣声

0%

python | MapReduce

map and reduce

1.map()
map()函数接收两个参数,一个是函数,一个是Iterable,map将传入的函数依次作用到序列的每个元素,并把结果作为新的Iterator返回。

例1:

ls = [1,2,3,4,5,6,7,8,9]
fx = lambda x:x**2
rst = map(fx, ls)
print(list(rst))

例2:

int2str = lambda x : str(x)
rst = map(int2str, ls)
list(rst)

2.reduce()
reduce: 用传给 reduce 中的函数 function(有两个参数)先对集合中的第 1、2 个元素进行操作,得到的结果再与第三个数据用 function 函数运算,依此类推,最后得到一个结果。
例1:

from functools import reduce
# 从python3开始,reduce函数移动到了functools这个包,每次使用前要先import
mul_xy = lambda x, y: x*y
reduce(mul_xy, [1, 3, 5, 7, 9])

例2:

# 求n的阶乘
from functools import reduce
n = int(input("请输入一个数:"))
jiecheng = lambda x, y: x * y
reduce(jiecheng, [i for i in range(1, n+1)])