python匿名函式(lambda)

2022-06-23 23:21:13 字數 1057 閱讀 6498

簡單來說,程式設計中提到的 lambda 表示式,通常是在需要一個函式,但是又不想費神去命名一個函式的場合下使用,也就是指匿名函式

當我們在傳入函式時,有些時候,不需要顯式地定義函式,直接傳入匿名函式更方便。

在python中,對匿名函式提供了有限支援。還是以map()函式為例,計算f(x)=x2時,除了定義一個f(x)的函式外,還可以直接傳入匿名函式:

>>> list(map(lambda x: x * x, [1, 2, 3, 4, 5, 6, 7, 8, 9]))

[1, 4, 9, 16, 25, 36, 49, 64, 81]

通過對比可以看出,匿名函式lambda x: x * x實際上就是:

def

f(x):

return x * x

關鍵字lambda表示匿名函式,冒號前面的x表示函式引數。

匿名函式有個限制,就是只能有一個表示式,不用寫return,返回值就是該表示式的結果。

用匿名函式有個好處,因為函式沒有名字,不必擔心函式名衝突。此外,匿名函式也是一個函式物件,也可以把匿名函式賦值給一個變數,再利用變數來呼叫該函式:

>>> f = lambda x: x *x

>>>f

lambda> at 0x101c6ef28>

>>> f(5)

25

同樣,也可以把匿名函式作為返回值返回,比如:

def

build(x, y):

return

lambda: x * x + y * y

和其他很多語言相比,python 的 lambda 限制較多,最嚴重的當屬它只能由一條表示式組成。這個限制主要是為了防止濫用,因為當人們發覺 lambda 很方便,就比較容易濫用,可是用多了會讓程式看起來不那麼清晰,畢竟每個人對於抽象層級的理解程度都有所不同。

python 的lambda匿名函式

先看一個例子 list map lambda x x x 1 2 3 4 5 關鍵字lambda 表示匿名函式,冒號前面的x表示函式引數,冒號後面是表示式 如果是判斷表示式,則和filter配合使用,如果是非判斷表示式,可以配合reduce或者map使用 判斷表示式 list filter lamb...

Python 匿名函式 lambda ,map

map 會根據提供的函式對指定序列做對映。 第一個引數 function 以第二個引數序列中的每一個元素呼叫 function 函式,返回一個map物件。 map 函式語法 map function iterable python3 中若想返回列表需這樣寫 list map function ite...

python 匿名函式 lambda 的使用

在python中,lambda允許使用者快速定義單行函式,當然使用者也可以按照典型的函式定義完成函式。lambda的目的就是簡化使用者定義使用函式的過程。 in 6 s lambda x x 1in 7 s 5 out 7 6 也可以定義多個引數 n 8 s lambda x y x y in 9 s 4...