前言
在python里有一個函數map(),它有點高大上的感覺。本文將詳細給大家介紹python中map()函數使用的相關內容,分享出來供大家參考學習,下面話不多說了,來一起看看詳細的介紹:
或許你已經看過GOOGLE最掙錢的論文:
“MapReduce: Simplified Data Processing on Large Clusters”
Google的那篇MapReduce論文里說:Our abstraction is inspired by the map and reduce primitives present in Lisp and many other functional languages。
這句話提到了MapReduce思想的淵源,大致意思是,MapReduce的靈感來源于函數式語言(比如Lisp)中的內置函數map和reduce。
那么map()到底是干什么呢?
其實map()函數就是一個數據集到另一個數據集的映射的關系,中間并沒有減少,或增加元素的。因此在python里,map()函數就是把多個列表對象里的元素,按順序取出來,然后放進函數里進行操作,計算出來結果。它是一個并行的關系,并沒有減少元素。
如下面例子:
#python 3. 6 #蔡軍生 #http://blog.csdn.net/caimouse/article/details/51749579 # def sum(x, y): return x + y list1 = [1, 3, 5, 7] list2 = [2, 4, 6, 8] result = map(sum, list1, list2) print([x for x in result])
輸出結果如下:
[3, 7, 11, 15]

同理,也可以把map函數處理的思想用到集群服務器上,就是把很多數據切分,然后對每一塊數據分別放到不同的電腦進行并行處理,并且都是同一種映射關系的計算,數據個數并沒有增加或減少。然后再把這些處理過的數據,再集中到一起進行reduce過程。
至于python里的reduce()函數是怎么樣處理呢?大家可以通過這篇文章學習下。
總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對VEVB武林網的支持。
新聞熱點
疑難解答