Python reduce 函式的使用簡明教程

2021-10-12 15:37:15 字數 1311 閱讀 2268

reduce() 函式會對引數序列中元素進行累積。

python3.x reduce() 已經被移到 functools 模組裡,如果我們要使用,需要引入 functools 模組來呼叫 reduce() 函式:

from functools import reduce
reduce() 函式語法如下:

reduce(function, iterable[, initializer])

function – 函式,有兩個引數

iterable – 可迭代物件

initializer – 可選,初始引數

返回值為函式計算結果。

其中,function引數是乙個有兩個引數的函式,reduce依次從資料集合中取乙個元素和上一次呼叫function的結果做引數,再次呼叫function。

注意:第一次呼叫function時,如果提供initializer引數,會以資料集合中的第乙個元素和initializer作為引數呼叫function,否則會以資料集合中的前兩個元素做引數呼叫function。

比如有列表[1,2,3,4,5],通過reduce實現列表元素之和。

#!/usr/bin/python

from functools import reduce

# 定義兩數相加函式

def add(x, y)

:return x + y

# 計算列表和:1+2+3+4+5

sum1 = reduce(add, [1,2,3,4,5]

)# 使用 lambda 匿名函式

sum2 = reduce(lambda x, y: x+y, [1,2,3,4,5]

) print(sum1)

#輸出15

print(sum2)

#輸出15

以上為無初始化initializer引數的情況,下面的示例為有初始化引數,計算過程如下:

#!/usr/bin/python

from functools import reduce

l=[1,2,3,4]

print(reduce(lambda x,y: x+y, l,5))

# initializer為5

#-->5+1=6 #第一次計算為 初始值 + 資料集合的第乙個值

#-->6+2=8

#-->8+3=11

#-->11+4=15

Python reduce 函式的用法小結

reduce 函式也是python內建的乙個高階函式。reduce 格式 reduce func,seq init reduce 函式即為化簡函式,它的執行過程為 每一次迭代,都將上一次的迭代結果 注 第一次為init元素,如果沒有指定init則為seq的第乙個元素 與下乙個元素一同傳入二元func...

Python reduce原來是這樣用的

官方解釋 這樣看來,其實下面的 定義是有一點問題,我們在程式中呼叫這段 reduce lambda x,y x y,1,2,3,4,5 得到的結果為16,而正確的結果為15,問題在於如果集合不是以0開始,那麼按照如下 第一次呼叫x 1,即第乙個元素,y也是等於1,也是第乙個元素,而正確的y應該是2。...

函式的用法 Excel函式TREND函式的用法

trend函式是乙個線性趨勢的 函式,在已知y值 x值的條件下,x對應的y值 trend共有4個引數,三個必選引數,乙個可選引數 同樣的一組資料第四引數不同,結果也是有區別的 灰色曲線是由第四引數為false時得到的結果生成的曲線。通過斜率與截距函式我們計算出這兩條曲線的斜率與截距,可以看出,第四引...