python:reduce方法
阿新 • • 發佈:2018-11-09
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("北京"))