lambda的用法和語法

2022-07-27 10:24:11 字數 1421 閱讀 9325

1、什麼是lambda函式

ambda是匿名函式,使用lambda可節省函式名稱。

lambda argument_list: expression

lambda是python預留的關鍵字,argument_list和 expression由使用者自定義。

冒號前是引數,可以有多個,用逗號隔開,冒號右邊是函式體的返回值

g = lambda x,y : x+y

print g(1,2)

與函式等同:

def f(x,y):

return x+y

print f(1,2)

2、lambda的特點:

1)、lambda有輸入和輸出。輸入是傳入到argument_list的值,輸出是函式計算出的值。

2)、lambda沒有函式名。絕大多數lambda函式作為乙個引數傳給乙個需要函式物件為引數的函式,比如map,reduce,filter等。

3、lambda應用

1)、filter()

filter()函式用於過濾序列,過濾掉不符合條件的元素,返回由符合條件元素組成的新列表。

語法: filter(function,iterable)

filter函式返回乙個list,但與map函式不同的是,filter函式只能有乙個iterable作為輸入.

返回值:最後將判斷函式返回 true 的元素放到新列表中。

a = [1, 2, 3, 4, 5, 6]

list(filter(lambda x : x % 2 == 0, a))

#output: [2, 4, 6]

2)、map() 

map() 會根據提供的函式對指定序列做對映。

語法:map(function, iterable1, iterable2, ...)

返回值:第乙個引數 function 以引數序列中的每乙個元素呼叫 function 函式,返回包含每次 function 函式返回值的新列表。

list(map(lambda x: x+2, [1,2,3,4]))

#output:[3,4,5,6]

list(map(lambda x, y: x + y, [1, 3, 5, 7, 9], [2, 4, 6, 8, 10]))

#output:[3, 7, 11, 15, 19]

3)、reduce()

reduce() 函式會對引數序列中元素進行累積。

語法: reduce(function,iterable[,initializer])

返回值:用傳給 reduce 中的函式 function(有兩個引數)先對集合中的第 1、2 個元素進行操作,得到的結果再與第三個資料用 function 函式運算,返回最後得到乙個結果。

reduce(lambda x, y: x+y, [1,2,3,4,5]) 

# output:15

python的lambda的語法

python 純文字檢視 複製 1g lambdax x 1 看一下執行的結果 g 1 2 g 2 3 所以可以這樣認為,lambda作為乙個表示式,定義了乙個匿名函式,上例的 x為入口引數,x 1為函式體,用函式來表示為 python 純文字檢視 複製 12 3 以下定義乙個函式 defg x a...

python的lambda的語法

python 純文字檢視 複製 1g lambdax x 1 看一下執行的結果 g 1 2 g 2 3 所以可以這樣認為,lambda作為乙個表示式,定義了乙個匿名函式,上例的 x為入口引數,x 1為函式體,用函式來表示為 python 純文字檢視 複製 12 3 以下定義乙個函式 defg x a...

lambda函式的用法

python中,lambda函式也叫匿名函式,及即沒有具體名稱的函式,它允許快速定義單行函式,類似於c語言的巨集,可以用在任何需要函式的地方。這區別於def定義的函式。1 def建立的方法是有名稱的,而lambda沒有。2 lambda會返回乙個函式物件,但這個物件不會賦給乙個識別符號,而def則會...