Python lambda表示式的兩種應用場景

2021-10-10 01:35:50 字數 1085 閱讀 3223

1.lambda表示式

python書寫簡單,功能強大, 迅速發展成為 ai ,深度學習的主要語言。介紹python中的lambda表示式,注意到,它只是乙個表示式,不是語句啊。

lambda的語法規則: 乙個或多個引數以冒號終止輸入引數,這些引數可以理解為有名函式原型的輸入引數,以後是乙個表示式,相當於有名函式的函式體部分。lambda的函式體部分,是作為返回值輸出部分。

2.場景1:map 和 reduce

python 中的 map 和 reduce,再結合 lambda表示式的話,使用起來會更加高效,如下所示:

'''

'''def

sum(mylist)

:return

reduce

(lambda x, y:

2*x +

1*y, mylist)

可以看到兩個輸入引數 x, y , 返回為 2*x + y ,通過這樣對 mylist 的元素完成化簡操作。

3.場景2: lambda 和 list 結合使用

這個場景在面試中經常被問到,如下所示:

li =

[lambda

:x for x in

range(10

)]

得到乙個 lambda 的list,列印 li0 會得到什麼,注意這種呼叫方法,因為是陣列,先拿第乙個元素,li[0],後面的括號表示呼叫lambda表示式。列印的結果為 0 嗎?

no!是 9

lambda表示式不會形成對函式體內變數的記憶,只記錄最後乙個狀態。

那麼如果lambda的入參中帶有x, 會得到我們想要的結果0 嗎?

li =

[lambda x :x for x in

range(10

)]res = li[0]

(0)print

(res)

輸出:0

因此,需要注意區分這兩種寫法的不同,記得這個區別,在一次面試中,曾經被問到,希望對大家有用。

Python lambda表示式學習

lambda只是乙個表示式,函式體比def簡單很多。lambda的主體是乙個表示式,而不是乙個 塊。僅僅能在lambda表示式中封裝有限的邏輯進去。lambda表示式是起到乙個函式速寫的作用。允許在 內嵌入乙個函式的定義。如下例子 定義了乙個lambda表示式,求三個數的和。再看乙個例子 用lamb...

原創 python lambda表示式

對於lambda先看一下 python filter函式 一文提到的函式 li boy 41 tim qq 1125891 filter fu,li 41 1125891 可以用lambd一句話表示 li boy 41 tim qq 1125891 filter lambda x x.isdigit...

python lambda表示式詳解

python lambda表示式詳解 1 lambda簡介 先來看一段 示例 第一行是lambda宣告,x,y相當於傳入的引數,整個函式會返回x y的值。lambda作為乙個表示式,定義了乙個匿名函式,上例的 x,y為入口引數,x y為函式體。在這裡lambda簡化了函式定義的書寫形式。python...