map()是 Python 內建的高階函數,它接收一個函數 f 和一個 list,並且透過把函數 f 依序作用在 list 的每個元素上,得到一個新的 list 並回傳。以下這篇文章主要跟大家介紹了關於python中map()函數的使用方法,需要的朋友可以參考下
前言
在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()函數是怎麼樣處理呢?大家可以透過這篇文章學習下。
總結#
以上是python中map()函數的方法範例的詳細內容。更多資訊請關注PHP中文網其他相關文章!