首頁 > 後端開發 > Python教學 > python中reduce()函數的範例

python中reduce()函數的範例

黄舟
發布: 2017-10-03 05:44:49
原創
1826 人瀏覽過

reduce() 函數會對參數序列中元素進行累積,以下這篇文章主要給大家介紹了關於python中reduce()函數的使用方法,文中透過範例程式碼介紹的非常詳細,對大家的學習或者工作有一定的參考學習價值,需要的朋友們下面來一起看看吧。

前言

本文主要介紹了python中reduce()函數所使用的相關內容,分享出來供大家參考學習,下面話不多說了,來一起看看詳細的介紹:

reduce()函數在庫functools裡,如果要使用它,要從這個庫裡導入。 reduce函數與map函數有不一樣地方,map運算就是平行操作,reduce函數是把多個參數合併的操作,也就是從多個條件簡化的結果,在計算機的演算法裡,大多數情況下,就是為了簡單化。例如辨識影像是否是一隻貓,那麼就是從眾多的像素中提煉出來一個判斷:是或否。可能是幾百萬個像素,只出來一個結果。在GOOGLE大規模集群裡,就是利用這個思想,把前面並行處理的操作叫做map,並行處理之後的結果,就需要簡化,歸類,把這個簡化和歸類的過程就叫做reduce。由於reduce只能在一台主機上操作,並不能分散式地處理,但是reduce處理的是map結果,那麼意味著這些結果已經非常簡單,資料量大大減小,處理起來就非常快。

因此可以把mapreduce過程叫做分析歸納的過程。

看一下面reduce()的範例:


#python 3. 6 
#蔡军生 
#http://blog.csdn.net/caimouse/article/details/51749579 
# 
from functools import reduce 
 
result = reduce(lambda x, y: x+y, [1, 2, 3, 4, 5]) 
print(result)
登入後複製

輸出結果:

15

在這個範例裡,其實計算過程是這樣的:

((((1 +2)+3)+4)+5)


#再看一個階乘的範例:


#
#python 3. 6 
#蔡军生 
#http://blog.csdn.net/caimouse/article/details/51749579 
# 
from functools import reduce 
 
n = 3 
print(reduce(lambda x, y: x * y, range(1, n + 1))) # 6
登入後複製

輸出結果:

#6

reduce函數,reduce函數會對參數序列中元素進行累積。

reduce函數的定義:


#
reduce(function, sequence[, initial]) -> value
登入後複製

function參數是一個有兩個參數的函數, reduce依序從sequence中取一個元素,和上一次呼叫function的結果做參數再呼叫function。

第一次呼叫function時,如果提供initial參數,會以sequence中的第一個元素和initial作為參數呼叫function,否則會以序列sequence中的前兩個元素做參數呼叫function。


reduce(lambda x, y: x + y, [2, 3, 4, 5, 6], 1)
登入後複製

結果為21(  (((((1+2)+3)+4)+5)+6)  )


#
reduce(lambda x, y: x + y, [2, 3, 4, 5, 6])
登入後複製

結果為20

#總結

#

以上是python中reduce()函數的範例的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
python - ubuntu16.04 lxml的報錯
來自於 1970-01-01 08:00:00
0
0
0
有辦法在PHP裡寫Python嗎?
來自於 1970-01-01 08:00:00
0
0
0
python scrapy爬蟲錯誤
來自於 1970-01-01 08:00:00
0
0
0
python相關問題求解決,有償
來自於 1970-01-01 08:00:00
0
0
0
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板