python中reduce函數和lambda表達式的學習

最近學習了reduce函數和lambda表達式的組合應用,十分方便,可以代替一些循環操作。

例如如下代碼:

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

其中reduce函數是python中的一個二元內建函數,它可以通過傳給reduce中的函數(必須是二元函數)依次對數據集中的數據進行操作。例如上述代碼傳給reduce的函數是做加法,數據集是list,那麼reduce函數的作用就是將數據集中的數據依次相加,最後打印出的結果就是15。

凡是要對一個集合進行操作的,並且要有一個統計結果的,能夠用循環或者遞歸方式解決的問題,一般情況下都可以用reduce方式實現。在python 3.0.0.0以後, reduce已經不在built-in function裏了, 要用它就得from functools import reduce。


而其中的lambd表達式是一種精簡函數的表達方法,省略了函數的定義,命名等問題。如下函數:

def ds(x):
    return 2*x+1

那麼ds(5)就是11.

用lambda表達式表示上面函數:

g = lambda x: 2*x+1

同樣g(5) = 11,這裏將函數簡化爲一個表達式。

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