python的map/reduce区别
直接上列子
map:
把f(x)作用在list的每一个元素并把结果生成一个新的list”
# coding=utf-8
def f(x):
return x * x
r = map(f, [1, 2, 3, 4, 5, 6, 7, 8, 9])
print list(r)
'''
把list的元素分别带入函数进行计算即:
f(1)
f(2)
f(3)
.
.
f(9)
得到的最后结果再放在一个list里显示
'''
------------------------------------------------------------------------------------
reduce:
#reduce
把一个函数作用在一个序列[x1, x2, x3, ...]
上,这个函数必须接收两个参数,reduce
把结果继续和序列的下一个元素做累积计算 具体意思看下面
# coding=utf-8
from functools import reduce
def add(x, y):
return x * y
print reduce(add, [1, 3, 5, 7, 9])
'''
reduce 的计算过程
1*3 先取前两元素
(1*3)*5 在前面的基础的上再取下一个元素
((1*3)*5)*7
(((1*3)*5)*7)*9
'''