# =================================================
# 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函数,将各个任务块的执行结果进行汇总,得到最终结果。
'''