python map,reduce的简单应用

# =================================================
# map操作
items = [1,2,3,4,5]
sequared = []
for i in items:
    sequared.append(i**2)
print(sequared)

items = [1,2,3,4,5]
sequared = list(map(lambda x:x**2, items))
print(sequared)

def multiply(x):
    return x*x
def add(x):
    return x+x
funcs = [multiply, add]
for i in range(5):
    value = map(lambda x:x(i), funcs)
    print(list(value))

# ====================================
# reduce操作
from functools import reduce
product = reduce((lambda x,y:x*y), [1,2,3,4,5,6])
# 对其中得所有数都执行*操作,没有顺序,凉凉执行直到只剩一个
print(product)
# =========================================
number_list = range(-5,5)
less_than_zero = filter(lambda  x: x<0, number_list)
print(list(less_than_zero))
# =================================================

'''
以一个常见的单词统计为例子
文件 ===> res 是二维列表[[][][]...] 第二维每一个都是一个任务块
res ===> map_res  映射后的结果,对没有给任务块进行统计的结果。返回的是很多defaultdict的列表
map_res ===> reduct_res 通过reduce函数,将所有的defaultdict进行统计。统计结果即为所有的统计结果。

可见,map和reduce分别为:
    1. 划分任务,将所有任务划分为一个个任务块
    2. 通过map函数,将一个个任务块进行执行,得到各个任务块的执行结果
    3. 通过reduce函数,将各个任务块的执行结果进行汇总,得到最终结果。
'''
全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务