摘要:會依次將中的數(shù)據(jù)傳遞到中,根據(jù)返回的或者,留下或者拋棄這個值。而對于字符串,則是根據(jù)字符串對應的碼表進行排序。同時也是一個高階函數(shù),可以實現(xiàn)自定義的排序方式。
map/reduce是一種編程思想,在各個領域都有它的實踐。
網(wǎng)上有一個簡單的例子解釋map/reduce。
比如說你需要數(shù)一下某一個圖書館中有多少本藏書。
最傻瓜的做法就是排一個人從頭數(shù)到尾。這樣速度慢,低效。
另一種方法就是先將圖書館劃分成幾個區(qū)域,派多個人,每人負責一個區(qū)域去數(shù)書架上的藏書數(shù)。這就是map.
當大家都把各自的數(shù)完了,一個人負責加和所有的圖書數(shù)。這就是reduce。
這里有幾篇文章可能會幫助理解。http://blog.jobbole.com/1321/ 和
http://blog.csdn.net/lifuxian...
python內(nèi)置了map和reduce函數(shù)。
map 函數(shù)map函數(shù)接受兩個參數(shù),第一個是函數(shù)f,第二個是序列。map函數(shù)的作用就是將傳入的函數(shù)作用在序列的每一個元素上,并放回一個新的序列。所以函數(shù)f接收一個參數(shù)。
map其實是把運算規(guī)則抽象化了,是一個高階函數(shù)。
reduce函數(shù)也接受兩個參數(shù),第一個是函數(shù)f,第二個是序列。函數(shù)f接收兩個參數(shù)。
f先從序列開端取兩個元素,計算得一個結果。該結果再與序列第三個參數(shù)作為兩個參數(shù)代入函數(shù)f計算得一個結果,如此不斷重復。
filter(func,list)
filter會依次將list中的數(shù)據(jù)傳遞到func中,根據(jù)func返回的True或者False,留下或者拋棄這個值。
例如
// 定義一個函數(shù),判斷是否是int def is_int(x): return isinstance(x, int) l = [1, 2, 3, "100", "yes"] print filter(is_int, l)sorted
python可以用sorted函數(shù)實現(xiàn)默認的排序。對于數(shù)字,則根據(jù)數(shù)字大小進行排序。而對于字符串,則是根據(jù)字符串對應的Ascii碼表進行排序。
同時sorted也是一個高階函數(shù),可以實現(xiàn)自定義的排序方式。
例如我們需要實現(xiàn)一個不區(qū)分大小寫的字符排序方式,則可以先將所有的字符轉化成小寫,然后再比較。
實現(xiàn)的自定義比較函數(shù)必須是接收兩個參數(shù),三種返回結果:1,0,-1.
def my_compare(x, y): x = x.lower() y = y.lower() if x < y: return -1 elif x == y: return 0 else: return 1 print sorted(["a","B","c","d"],my_compare) #打印結果 ["a", "B", "c", "d"]
若你希望改成逆序,則調換一下返回值即可。
文章版權歸作者所有,未經(jīng)允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉載請注明本文地址:http://systransis.cn/yun/38244.html
摘要:用匿名函數(shù)有個好處,因為函數(shù)沒有名字,不必擔心函數(shù)名沖突。和不同的是,把傳入的函數(shù)依次作用于每個元素,然后根據(jù)返回值是還是決定保留還是丟棄該元素。字符串給出當前平臺使用的行終止符。程序中間的退出,為正常退出。 列表生成式 函數(shù)的參數(shù)類型 lambda函數(shù) map, reduce, filter, sorted函數(shù) eval, exec, join, zip函數(shù) itertools中的...
摘要:函數(shù)聲明為了代碼的可讀性,在定義一個函數(shù)的時候,最好有其函數(shù)參數(shù)的說明。裝飾器函數(shù)的代碼有一定的規(guī)律,寫起來大同小異,只是其中的業(yè)務邏輯不同。 函數(shù)聲明 為了代碼的可讀性,在定義一個函數(shù)的時候,最好有其函數(shù)參數(shù)的說明。示例: def func_test(s): :type s: str :rtype: str pass 實現(xiàn)這種效果可以通過插...
摘要:貢獻者飛龍版本最近總是有人問我,把這些資料看完一遍要用多長時間,如果你一本書一本書看的話,的確要用很長時間。為了方便大家,我就把每本書的章節(jié)拆開,再按照知識點合并,手動整理了這個知識樹。 Special Sponsors showImg(https://segmentfault.com/img/remote/1460000018907426?w=1760&h=200); 貢獻者:飛龍版...
摘要:學習筆記七數(shù)學形態(tài)學關注的是圖像中的形狀,它提供了一些方法用于檢測形狀和改變形狀。學習筆記十一尺度不變特征變換,簡稱是圖像局部特征提取的現(xiàn)代方法基于區(qū)域圖像塊的分析。本文的目的是簡明扼要地說明的編碼機制,并給出一些建議。 showImg(https://segmentfault.com/img/bVRJbz?w=900&h=385); 前言 開始之前,我們先來看這樣一個提問: pyth...
閱讀 753·2021-07-25 21:37
閱讀 3667·2019-08-30 15:55
閱讀 2582·2019-08-30 15:54
閱讀 1731·2019-08-30 15:44
閱讀 3134·2019-08-30 15:44
閱讀 872·2019-08-30 15:43
閱讀 1037·2019-08-29 15:36
閱讀 3047·2019-08-29 10:58