Python中Lambda表達式的使用

Lambda函數是python中一種快速定義單行的最小函數,能夠用在任何須要函數的地方 。它只是一個表達式,函數體比def簡單不少。主體是一個表達式,而不是一個代碼塊。僅僅能在lambda表達式中封裝有限的邏輯進去。lambda函數擁有本身的命名空間,且不能訪問自有參數列表以外或全局命名空間裏的參數。下面的例子比較了傳統的函數定義def與lambda定義方式:python

 

 

普通def函數定義:函數

 

def sum(x, y): return x + y print(sum(4,6))

運行結果:spa

10

 

 

lambda表達式定義:it

p = lambda x,y:x+y print(p(4,6))

運行結果:class

10

 

能夠看到,兩個函數獲得的結果同樣,而對於實現簡單功能的函數來講,使用lambda函數來定義更加精簡靈活,還能夠直接把函數賦值給一個變量,用變量名來表示函數名。變量

使用lambda函數還有一些注意事項:  lambda 函數能夠接收任意多個參數 (包括可選參數) 而且返回單個表達式的值。  lambda 函數不能包含命令,包含的表達式不能超過一個。lambda

 

傳入一個參數的lambda表達式:命名空間

a = lambda x: x * x print(a(3))

運行結果:命名

9

 

 

多個參數的lambda表達式:word

a = lambda x, y, z: (x + 8) * y - z print(a(5, 6, 8))

運行結果:

70

 

 

lambda表達式也能夠嵌入def函數中進行使用:

def func(n): return lambda s: s * n result = func(2) print(result('word')) print(result(5))

運行結果:

wordword
10本文轉載:https://www.myblou.com/archives/145
相關文章
相關標籤/搜索