归约函数:把有序或有限的可迭代对象变成一个聚合结果。
关键思想是把一系列值归约成单个值。reduce( ) 函数的第一个参数就是接受两个参数的函数,第二个参数是一个可迭代的对象。加入有个接受两个参数的 fn 函数和一个 lst 列表。调用 reduce(fn,lst) 时,fn 会应用到第一对元素上,即 fn(lst[0],lst[1]),生成第一个结果 r1。然后,fn 会应用到 r1 和下一个元素上,即 fn(r1,lst[2]),生成第二个结果 r2.接着,调用 fn(r2,lst[3]),生成 r3,直到最后结果,
使用 reduce 函数计算5的阶乘:
import functools
functools.reduce(lambda a,b:a*b,range(1,6))