lambda函式的用法

2021-09-18 03:05:02 字數 1008 閱讀 3108

python中,lambda函式也叫匿名函式,及即沒有具體名稱的函式,它允許快速定義單行函式,類似於c語言的巨集,可以用在任何需要函式的地方。這區別於def定義的函式。

1)def建立的方法是有名稱的,而lambda沒有。

2)lambda會返回乙個函式物件,但這個物件不會賦給乙個識別符號,而def則會把函式物件賦值給乙個變數(函式名)。

3)lambda只是乙個表示式,而def則是乙個語句。

4)lambda表示式」 : 「後面,只能有乙個表示式,def則可以有多個。

5)像if或for或print等語句不能用於lambda中,def可以。

6)lambda一般用來定義簡單的函式,而def可以定義複雜的函式。

7)lambda函式不能共享給別的程式呼叫,def可以。

注意:lambda函式主要用作一些特定函式或方法的引數,一般情況下,建議使用def定義的普通函式

《函式名》 = lamb 《引數》:《表示式》

即等價於:

def  《函式名》(《引數》):

《函式體》

return 《返回值》

如下示例:

#單個引數

>>> g = lambda x : x ** 2

>>> print g(3)

9#多個引數的

>>> g = lambda x, y, z : (x + y) ** z

>>> print g(1,2,2)

9

lambda表示式會返回乙個函式物件,如果沒有變數接受這個返回值的話,它很快就會被丟棄。也正是由於lambda只是乙個表示式,所以它可以直接作為list和dict的成員。

小結:lambda 並不會帶來程式執行效率的提高,只會使**更簡潔

lambda 是為了減少單行函式的定義而存在的

如果可以使用for…in…if來完成的,堅決不用lambda

參考部落格:

lambda函式用法

例1 傳入多個引數的lambda函式 def sum x,y return x y 用lambda來實現 p lambda x,y x y print p 4,6 例2 傳入乙個引數的lambda函式 a lambda x x x print a 3 注意 這裡直接a 3 可以執行,但沒有輸出的,前...

lambda 隱匿函式 的用法

lambda 函式只能有乙個表示式 測試lambda 隱匿函式的使用 lambda 表示式的基本語法 lambda arg1,arg2,arg3.表示式 lambda 函式中一樣有 形參 函式引數,函式體 表示式,返回值 運算結果 文 現的英文註解 arg 函式的 自變數 keys kiz 鍵 va...

python中的lambda函式用法

一 lambda函式也叫匿名函式,即,函式沒有具體的名稱。先來看乙個最簡單例子 def f x return x 2 print f 4 python中使用lambda的話,寫成這樣 g lambda x x 2 print g 4 二 lambda和普通的函式相比,就是省去了函式名稱而已,同時這樣...