匿名函式lambda的用法
python中,lambda函式也叫匿名函式,及即沒有具體名稱的函式,它允許快速定義單行函式,類似於c語言的巨集,可以用在任何需要函式的地方。這區別於def定義的函式。
lambda與def的區別:
1)def建立的方法是有名稱的,而lambda沒有。
2)lambda會返回乙個函式物件,但這個物件不會賦給乙個識別符號,而def則會把函式物件賦值給乙個變數(函式名)。
3)lambda只是乙個表示式,而def則是乙個語句。
4)lambda表示式」 : 「後面,只能有乙個表示式,def則可以有多個。
5)像if或for或print等語句不能用於lambda中,def可以。
6)lambda一般用來定義簡單的函式,而def可以定義複雜的函式。
6)lambda函式不能共享給別的程式呼叫,def可以。
lambda語法格式:
lambda 變數 : 要執行的語句
lambda
[arg1 [, agr2,.....argn]] : expression
如:
1、單個引數的:
>>> g = lambda x : x ** 2
>>>
print g(3)
92、多個引數的:
>>> g = lambda x, y, z : (x + y) ** z
>>>
print g(1,2,2)
9
lambda表示式會返回乙個函式物件,如果沒有變數接受這個返回值的話,它很快就會被丟棄。也正是由於lambda只是乙個表示式,所以它可以直接作為list和dict的成員。如:
>>> list_a = [lambda a: a**3, lambda b: b**3]
>>> list_a[0]
lambda> at 0x0259b8b0>
>>> g = list_a[0]
>>> g(2)
8
這裡就沒法用def語句代替了,語句是不能巢狀在裡面的。lambda表示式中,冒號前面是引數,可以有多個,用逗號分隔,冒號右邊是返回值。
lambda具體用不用,視情況而定吧,有時候使用lambda可以簡化**。
Python lambda函式的學習
lambda函式在python 基礎中沒看過,查詢資料目前知道如下的用法 1.用於簡單表示式的計算 lambda 引數 表示式 如 result lambda x x 2 print result 3 引數也可以有多個 result lambda x,y x y print result 3,4 2...
python lambda函式基礎
本文,我們學習python lambda函式。首先,看一下python lambda函式的語法,如下 f lambda parameter1,parameter2,expression lambda語句中,冒號前是引數,可以有0個或多個,用逗號隔開,冒號右邊是返回值。lambda語句構建的其實是乙個...
python lambda匿名函式
lambda定義乙個匿名函式 lambda只是乙個表示式,函式體比def簡單很多,很多時候定義def,然後寫乙個函式太麻煩,這時候就可以用lambda定義乙個匿名函式。lambda的主體是乙個表示式,而不是乙個 塊。僅僅能在lambda表示式中封裝有限的邏輯進去。參考鏈結 lambda的特性 乙個語...