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