原文:http://www.liuzhongshu.com/code/python-map-filter-reduce.html
python有幾個內(nèi)置的函數(shù)很有意思:map/filter/reduce,都是對一個集合進行處理,filter很容易理解用于過濾,map用于映射,reduce用于歸并,這幾個詞還是太抽象了,下面的代碼精確的說明了這幾個函數(shù)的用途:
def map_imp(function, sequence) :
if function is None: return list(sequence)
retvals = []
for element in sequence:
if (function(element)):
retvals.append(element)
return retvals
def reduce_imp(function, sequence) :
arg1 = function(sequence[0])
for arg2 in sequence[1:] :
arg1 = function(arg1, arg2)
return arg1
def filter_imp(function, sequence) :
retvals = []
for element in sequence:
if (function is None and element) or function(element) :
retvals.append(element)
return retvals
對于這種邏輯性強的東西,用語言來描述是無助的,代碼則要清晰的多。
具體使用方法可以參考另外一篇:http://www.aygfsteel.com/rain1102/archive/2009/06/01/279478.html