python中reduce()、map()、filter()的學習

上一節中學習了reduce函數,後來又遇見了map()和filter()函數,我認爲這三個函數應該放在一起。它們有一個共同點就是都通過一種操作方式作用一個數據集。

如上一節的reduce函數:

list = [1,2,3,4,5]    
print reduce(lambda x,y:x+y,list) 

它通過二元操作方法x+y即求和方法作用於後面的數據集list。

同理,map函數更加簡單:

def f(x):
    return x**2

map(f,[1,2,3,4,5])

或者:

map(str, [1,2,3,4,5])

顯而易見,map就是將一種映射方式作用於後面的數據集,第一個例子是將1,2,3,4,5映射爲其平方輸出,第二個例子是將int映射成string輸出。

filter函數顧名思義是一個過濾器,將數據集元素輸入作用方法後返回True的元素,例如返回十以內的偶數:

def f(x):
    if x%2 == 0:
        return True

filter(f, [1,2,3,4,5,6,7,8,9])
上述filter就返回了數據集中可以被2整除的元素。


reduce、map和filter使用方式相同,重點在於構造作用方式和明確數據集。



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章