python3中reduce()函數的使用方法示例
本文主要給大家介紹了關於python中reduce()函數使用的相關內容,分享出來供大家參考學習,下面話不多說了,來一起看看詳細的介紹:
reduce()函數在庫functools裏,如果要使用它,要從這個庫裏導入。reduce函數與map函數有不一樣地方,map操作是並行操作,reduce函數是把多個參數合並的操作,也就是從多個條件簡化的結果,在計算機的算法裏,大多數情況下,就是為了簡單化。比如識別圖像是否是一只貓,那麽就是從眾多的像素裏提煉出來一個判斷:是或否。可能是幾百萬個像素,就只出來一個結果。在GOOGLE大規模集群裏,就是利用這個思想,把前面並行處理的操作叫做map,並行處理之後的結果,就需要簡化,歸類,把這個簡化和歸類的過程就叫做reduce。由於reduce只能在一臺主機上操作,並不能分布式地處理,但是reduce處理的是map結果,那麽意味著這些結果已經非常簡單,數據量大大減小,處理起來就非常快。
因此可以把mapreduce過程叫做分析歸納的過程。
看一下面reduce()的例子:
?1 2 3 4 5 6 7 8 |
#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)
再看一個階乘的例子:
?1 2 3 4 5 6 7 8 |
#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函數的定義:
1 |
reduce (function, sequence[, initial]) - > value
|
function參數是一個有兩個參數的函數,reduce依次從sequence中取一個元素,和上一次調用function的結果做參數再次調用function。
第一次調用function時,如果提供initial參數,會以sequence中的第一個元素和initial作為參數調用function,否則會以序列sequence中的前兩個元素做參數調用function。
1 |
reduce ( lambda x, y: x + y, [ 2 , 3 , 4 , 5 , 6 ], 1 )
|
結果為21( (((((1+2)+3)+4)+5)+6) )
1 |
reduce ( lambda x, y: x + y, [ 2 , 3 , 4 , 5 , 6 ])
|
結果為20
總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。
原文:http://www.jb51.net/article/124906.htm
python3中reduce()函數的使用方法示例