Python教程分享之Lambda表達式相關的知識點

在Python中,除了def 之外,還提供了一種生成函數對象的表達式形式,即Lambda表達式,它可以創建小的匿名函數,起到一個函數速寫的作用。接下來就給大家分享Lambda表達式相關的知識點。

Lambda表達式定義及作用

Lambda表達式是一行的函數,它們在其他語言中也被稱爲匿名函數,即函數沒有具體的名稱。如果你不想在程序中對一個函數使用兩次,你也許會想用Lambda表達式,它們和普通的函數完全一樣。而且當使用函數作爲參數的時候,Lambda表達式非常有用,可以讓代碼簡單、簡潔。
在這裏插入圖片描述

Lambda與命名函數def的區別

1、def創建的方法是有名稱的,而Lambda沒有,可以立刻傳遞(無需變量)。Python Lambda會創建一個函數對象,但不會把這個函數對象賦給一個標識符,而def則會把函數對象賦值給一個變量(函數名)。

2、Python Lambda只是一個表達式,而def是一個語句。Lambda表達式運行起來像一個函數,當被調用時創建一個框架對象。Lambda能夠出現在Python語法不允許def出現的地方。此外,作爲一個表達式,Lambda返回了一個值(一個新的函數),可以選擇性的賦值給一個變量名,def語句則是在頭部將一個新的函數賦值給一個變量名,而不是將這個函數作爲結果返回。

3、Lambda表達式” : “後面,只能有一個表達式,def則可以有多個。Lambda表達式內部只能包含一行代碼,而命名函數內對此無限制。Lambda的主體是一個單個的表達式,而不是一個代碼塊。

4、Lambda可以直接作爲Python列表或Python字典的成員,返回Lambda表達式中最後一個表達式的值。

Lambda一般用來定義簡單的函數,而def可以定義複雜的函數;Lambda函數不能共享給別的程序調用,def可以。因此語句嵌套用def,表達式嵌套用Lambda。

對很多Python程序員來說,Lambda表達式是一種古怪而又陌生的語法。它本身缺少名稱和文檔,但在使用Python寫一些執行腳本時,使用lambda可以省去定義函數的過程,讓代碼更加精簡,因此很多企業要求Python程序員掌握Lambda表達式。

以上就是分享的Lambda表達式相關的知識點。希望本文的分享能幫到大家!

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