reduce函数累计算
reduce函数累计算
reduce在2.x中是内置函数,到了python3以后移动到了functools 模块,它的作用是从左到右对一个序列各项累计计算,最终得到一个单一值。累计计算函数的定义需要提供两个参数。常见的累计计算有累加,累乘。
reduce() 函数语法:
reduce(function, iterable[, initializer])
说明:
- function -- 函数,有两个参数
- iterable -- 可迭代对象
- initializer -- 可选,初始参数
from functools import reduce
alist = [1, 2, 3, 4]
# 自定义累计处理函数
def addFuc(x,y):
return x+y
# 累计求和,利用自定义函数
asum=reduce(addFuc,alist)
print(asum) # 10
# 累计求和,利用lambda表达式
asum2=reduce(lambda x, y: x+y, alist)
print(asum2) # 10
# 累乘
amult=reduce(lambda x, y: x*y, alist)
print(amult) # 24