python內置函數map/reduce/filter

python有幾個內置的函數頗有意 思:map/filter/reduce,都是對一個集合進行處理,filter很容易理解用於過濾,map用於映射,reduce用於歸併. 是python列表方法的三架馬車。
  • filter() 函數:
    filter 函數的功能至關於過濾器。調用一個布爾函數bool_func來迭代遍歷每一個seq中的元素;返回一個使bool_seq返回值爲true的元素的序列。

    >>> a = [ 1 , 2 , 3 , 4 , 5 , 6 , 7 ]
    >>>b = filter( lambda x : x > 5 , a)
    >>> print b
    >>> [ 6 , 7 ]
    若是filter參數值爲None,就使用identity()函數,list參數中全部爲假的元 素都將被刪除。以下所示:
    >>> a = [ 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 ]
    >>>b = filter( None , a)
    >>> print b
    >>> [ 1 , 2 , 3 , 4 , 5 , 6 , 7 ]

  • map() 函數:
map函數func做用於給定序列的每一個元素,並用一個列表來提供返回值。
>>> map( lambda x : x + 3 , a) #這裏的a同上
>>> [ 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 ]

#另外一個例子
>>> a = [ 1 , 2 , 3 ]
>>>b = [ 4 , 5 , 6 ]
>>> map( lambda x , y : x + y , a ,b)
>>> [ 5 , 7 , 9 ]

  • reduce() 函數:
reduce函數,func爲二元函數,將func做用於seq序列的元素,每 次攜帶一對(先前的結果以及下一個序列的元素),連續的將現有的結果和下一個值做用在得到的隨後的結果上,最後減小咱們的序列爲一個單一的返回值。
>>> a = [ 1 , 2 , 3 , 4 , 5 ]
>>> reduce( lambda x , y : x + y , a)
15
相關文章
相關標籤/搜索