"""# 需求:把list里面的数字加起来num_l = [1, 2, 3, 4, 5, 100]res = 0for num in num_l: res += num# print(res)# 定义函数num_l = [1, 2, 3, 4, 5, 100]def reduce_test(array): res = 0 for num in array: res += num return(res)print(reduce_test(num_l))# 逻辑仍然是写死了,全部的值乘起来呢?"""# 另外一种升级num_l = [1, 2, 3, 4, 5, 100]def multi(m,n): return m * ndef reduce_test(func, array, init=None): # res = 1 这么写又写死了. if init is None: res = array.pop(0) else: res = init for i in array: res = func(res, i) return resprint(reduce_test(multi, num_l))print(reduce_test(lambda m,n:m*n, num_l))print(reduce_test(multi, num_l, 100))# 升级:reduce, 功能:把一个完整的序列进行处理,最终获得一个值.from functools import reducenum_l = [1, 2, 3, 4, 5, 100]print(reduce(lambda m,n:m*n, num_l))