函数式编程->reduce

"""# 需求:把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))
相关文章
相关标签/搜索