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
'''
posted @ 2017-05-10 14:11  公众号python学习开发  阅读(257)  评论(0编辑  收藏  举报