Python中Lambda表達式的使用


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

 

 

普通def函數定義:

 

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

運行結果:

10
 

 

lambda表達式定義:

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

運行結果:

10 

 

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

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

 

 

傳入一個參數的lambda表達式:

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

運行結果:

9
 

 

多個參數的lambda表達式:

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
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM