reduce,有减少,降低,归纳的意思。
reduce() 函数会对参数序列中元素进行“累积”。
函数将一个数据集合(链表,元组等)中的所有数据进行下列操作:用传给 reduce 中的函数 function(有两个参数)先对集合中的第 1、2 个元素进行操作,得到的结果再与第三个数据用 function 函数运算,最后得到一个结果。
reduce语法:
reduce(function, iterable[, initializer])
参数:
- function – 函数,有两个参数
- iterable – 可迭代对象
- initializer – 可选,初始参数
返回值:
返回函数计算结果。
注意,和map、filter函数不同点:
- map和filter不用导入包,reduce需要导入包;
- map和filter是分别对每个传入的参数做操作,而reduce是对两个,两个的做处理;
好,来看几个示例:
1、示例一:求列表数据的和
from functools import reduce
lst4 = [1,2,3,4,5]
print(reduce(lambda x,y:x+y, lst4))
运行结果:
15
2、示例二:拼字符串
from functools import reduce
lst5 = ['a','Ab','ABC','abcd','Abcde','cc']
print(reduce(lambda x,y:x+y, lst5))
运行结果:
aAbABCabcdAbcdecc
3、示例三:找出列表中的最大值
from functools import reduce
def abc(x,y):
if x>y:
return x
else:
return y
lst4 = [5,2,7,2,1]
print(reduce(abc, lst4))
运行结果:
7