首頁  >  文章  >  後端開發  >  python中map()函數的方法範例

python中map()函數的方法範例

黄舟
黄舟原創
2017-10-03 05:45:031618瀏覽

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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn