1. 程式人生 > >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遊戲開發入門

你也能動手修改C編譯器

紙牌遊戲開發

五子棋遊戲開發