Python中lambda匿名函式的使用

2021-07-04 15:55:35 字數 868 閱讀 7741

python lambda是在python中使用lambda來建立匿名函式,而用def建立的方法是有名稱的,除了從表面上的方法名不一樣外,python lambda還有哪些和def不一樣呢?

1 python lambda會建立乙個函式物件,但不會把這個函式物件賦給乙個識別符號,而def則會把函式物件賦值給乙個變數。

2 python lambda它只是乙個表示式,而def則是乙個語句。

下面是python lambda的格式,看起來好精簡阿。

lambda x: print x

如果你在python 列表解析裡用到python lambda,我感覺意義不是很大,因為python lambda它會建立乙個函式物件,但馬上又給丟棄了,因為你沒有使用它的返回值,即那個函式物件。也正是由於lambda只是乙個表示式,它可以直接作為python 列表或python 字典的成員,比如:

info = [lambda a: a**3, lambda b: b**3]

在這個地方沒有辦法用def語句直接代替。因為def是語句,不是表示式不能巢狀在裡面,lambda表示式在「:」後只能有乙個表示式。也就是說,在def中,用return可以返回的也可以放在lambda後面,不能用return返回的也不能定義在python lambda後面。因此,像if或for或print這種語句就不能用於lambda中,lambda一般只用來定義簡單的函式。

下面舉幾個python lambda的例子吧

1 單個引數的:

g = lambda x:x*2

print g(3)

結果是6

2 多個引數的:

m = lambda x,y,z: (x-y)*z

print m(3,1,2)

結果是4

python中的匿名函式lambda

匿名函式 函式可以像普通變數一樣進行賦值 函式可以作為另乙個函式的引數進行傳遞 lambda匿名函式 沒有名字的函式,在定義函式的時候不需要起名字。格式 lambda引數 函式體 邏輯 一般只處理簡單的邏輯,不處理複雜的邏輯,一般只寫一行。def add a,b return a b 將函式作為引數...

Python中的匿名函式(lambda)

匿名函式的關鍵字為lambda 冒號前面是形參,冒號後面是返回值 1.匿名函式的可變引數和關鍵字引數 引數為字典 args 可接受多個值 def fun args,kwargs return args,kwargs print fun 1,2,3,4,5 print lambda args,kwar...

Python匿名函式lambda

lambda是匿名函式,形式為 lambda x x x等價於 def func x return x x其中 x 相當於函式引數,表示式 x x 相當於返回值,所以lambda不需要也不能有return.匿名函式本身是乙個函式物件,也可以把匿名函式賦值給乙個變數,再利用變數來呼叫該函式.匿名函式適...