reduce()函数和map()函数都是python中的高阶函数,充分的体现了大蟒的特点,和可迭代的特性。
reduce()接受两个参数:
第一个参数是一个函数,第二个参数是一个可以迭代的类型(Iterable)
第一个参数的函数也必须接受两个参数,reduce
会把函数的返回值与序列的下一个元素继续传入函数做计算。
如下例子,求从1累乘到100的值
#reduce 将函数的到的结果继续当做参数传入到函数中去
from functools import reduce
def add(x,y):
return x*y
print(reduce(add,range(100)))
那么我们可以形象的把这个方法做一个等价描述:
reduce(fn, [x1, x2, x3, x4,......]) = f(f(f(f(x1, x2), x3), x4) ......)