lambda表達式介紹
python中有一種靈活,便捷的且具有函數功能的表達式:lambda表達式!
lambda表達式,又稱匿名函數,是現代各種程式設計語言争相引入的一種文法,其功能堪比函數,設計卻比函數簡潔。
如果說函數是命名的、便于複用的代碼塊,那麼lambda 表達式則是功能更靈活的代碼塊,它可以在程式中被傳遞和調用。lambda 表達式可以用來替換局部函數(感興趣的讀者可以自行查閱“局部函數”),下面為大家示範lambda表達式的具體用法。
lambda表達式定義
首先以一個代碼例子讓大家對lambda表達式有一個直覺的認識:
lambda表達式範例一
從上述代碼示例可以看出,lambda 表達式的文法格式為:
-
lambda [parameter_list] : 表達式
根據其文法格式可以得到lambda 表達式的兩個要點:
- lambda 表達式必須使用 lambda 關鍵字定義。
-
在 lambda 關鍵字之後、冒号左邊為參數清單,可不帶參數,也可有多個參數。若有多個參數,則參數間用逗号隔開,冒号右邊為 lambda 表達式的傳回值。
lambda 表達式的本質是匿名的、單行函數體的函數,故lambda 表達式可以寫成函數的形式。例如,對于如下 lambda 表達式:
-
lambda x , y : x * y
改寫為函數形式如下:
def add(x, y):return x * y
即函數定義可以使用簡化方式:當函數體隻有一行代碼時,可直接把函數的代碼體放在與函數頭同一行。
本例中使用了多種python的小技巧,包括python推導式,map函數,lambda表達式等。
**一個問題:**感興趣的讀者可以将上述代碼進行全寫,深入了解下lambda表達式。
- 對于單行代碼函數,使用 lambda 表達式可省去定義函數的複雜過程,讓代碼更加簡潔。
- 對于無需多次使用的函數,由于lambda 表達式在用完之後立即釋放的特點,提升了程式性能