map,reduce和filter函数

numArray = [1, 2, 3, 4, 5]


def ercifang(x):
    return x ** 2


def map_test(func, numArray):
    li = []
    for i in numArray:
        li.append(func(i))
    return li


print(map_test(ercifang, numArray))
print(map_test(lambda x:x**2, numArray))
#python中提供的map函数类似于上边的函数: 第一个参数传入的是处理参数的函数,第二个参数是传入的可迭代对象;map内部会逐个迭代可迭代对象并用传入的函数进行加工,
#最后返回一个迭代器,该迭代器自能迭代一次,迭代后会删除迭代器中的内容;
#python2中返回的是一个list
print(list(map(lambda x:x**2,numArray)))

 

#filter传入的函数返回值是布尔型
print(list(filter(lambda x:x%2==0,numArray)))

  

reduce

num_1 = [1, 2, 3, 4, 5]


# 需求:将上面列表进行阶乘操作

def mutip(x, y):
    return x * y


def jieCheng(func, numl):
    res = num_1.pop(0)
    for i in num_1:
        res = func(res, i)
    return res


print(jieCheng(mutip,num_1))

#reduce函数 将一个序列通过指定函数汇聚成一个最终值 而且可以指定起始值
#reduce 函数需要先导入
from functools import  reduce
print(reduce(lambda x,y:x*y,num_1, 2))

大数据中mapReduce概念 说的意思跟python的map reduce是一个意思

 

posted @ 2018-09-06 15:14  valar-dohaeris  阅读(306)  评论(0)    收藏  举报