reduce方法是将一个数据集合(列表、元组等)中所有的数据进行指定操作
该方法首先需要导入模块,如下:
from functools import reduce
reduce()函数的定义:
格式:
reduce(function,sequence,initial_value)
function:接收一个函数,该函数必须接受两个参数。
sequence:接收可迭代的类型
initial_value:默认值,如果提供该值,在第一次运行的时候会以sequence中的第一个元素和initial_value作为参数调用 function,否则会以sequence中的前两个元素作为参数。
需要注意的是:reduce()中传入的函数f必须接受两个参数,reduce()对列表中的每个元素反复调用函数f,并返回最终的结果值。
例如:编写一个函数,接受x和y,返回x,y的和
def f(x,y):
return x+y
reduce的函数定义方法:
a = reduce(f,[1,2,3,4,5,6])
print(a)
#>>>21
在上述例子中,首先将1,2传递给f,调用f后得到3,之后再将3,3作为参数传递给f继续调用,直到得出一个数值。
a = reduce(f,[1,2,3,4,5,6],100)
print(a)
#>>>121
如果我们添加initial_value值,会首先将initial_value的值和sequence的第一个元素传递给function,之后返回值和第二个元素再传递给function。
reduce的匿名函数方法:
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
python3中统计某字符串出现的次数
from functools import reduce
sentences = ['我今年刚到北京,我去过北京天安门,北京真的是很棒,我想留在北京。 ']
word_count =reduce(lambda a,x:a+x.count("北京"),sentences,0)
print(word_count)
如果单纯的想要实现以上功能,则可以使用以下方式:
from functools import reduce
sentences = ['我今年刚到北京,我去过北京天安门,北京真的是很棒,我想留在北京。 ']
print(sentences[0].count("北京"))