reduce()函数的定义:
格式:
reduce(function,sequence,initial_value)
function:接收一个函数,该函数必须接受两个参数。
sequence:接收可迭代的类型
initial_value:默认值,如果提供该值,在第一次运行的时候会以sequence中的第一个元素和initial_value作为参数调用 function,否则会以sequence中的前两个元素作为参数。
该方法将一个数据集合(列表,元组等)中的所有数据进行下列操作:用传给 reduce 中的函数 function 先对集合中的第 1、2 个元素进行操作,得到的结果再与第三个数据用 function 函数运算,最后得到一个结果。
reduce 函数很适合连续计算(比如列表求和或连乘计算阶乘),
Python 3 中 reduce() 函数已经被从全局名字空间里移除了,它现在被放置在 fucntools 模块里,如果想要使用它,则需要通过引入 functools 模块来调用 reduce() 函数。
经典代码如下:
>>> from functools import reduce
>>> reduce(lambda x, y: x+y, [1,2,3,4,5])
15
>>> reduce(lambda x,y:x*y,range(1,5))
24
print(reduce(lambda: x,y:x+y,[1,2,3,4,5])
#>>>17
#或者带初始值的方法
print(reduce(lambda: x,y:x+y,[1,2,3,4,5],100)
#>>>117