# reduce(func,seq[]) seq中item顺序迭代,调用function,函数必须有两个参数,
# 执行结果返回一个值,在python2是python2中的一个函数在python3中将其放在
# functools中
from functools import *
def add(x, y):
return x + y
a = reduce(add, [0,2,3,4,5],1)
print(a)
# 相当于在在函数内部执行了下列程序x = x + y,有这么说法,如果没有设置init参数#(第三个数),会从seq中取第一个元素作为init的值,然后依次init结合第二个元素及
# 其 以后的元素进行操作
阶乘和的计算
# (1)计算一个数的阶乘
from functools import *
a = reduce(lambda x,y: x*y, range(1,6))
print(a)
# (2)得到一个阶乘和的列表
from functools import *
b = map(lambda i: reduce(lambda x,y: x*y, range(1,i+1),1), [1,2,3,4,5])
print(list(b))
# (3)阶乘和的计算
from functools import *
b = map(lambda i: reduce(lambda x,y: x*y, range(1,i+1),1), [1,2,3,4,5])
c = reduce(lambda x,y: x+y ,list(b))
print(c)