lambda表達(dá)式是一種用于定義匿名函數(shù)的簡潔語法,它可以在不使用def關(guān)鍵字的情況下創(chuàng)建一個函數(shù)對象。lambda表達(dá)式的一般格式是:
lambda 參數(shù)列表: 表達(dá)式
其中,lambda是Python的關(guān)鍵字,用于標(biāo)識這是一個匿名函數(shù);參數(shù)列表是可選的,可以有零個或多個參數(shù),用逗號分隔;表達(dá)式是一個Python表達(dá)式,它是函數(shù)的返回值,注意只能有一個表達(dá)式,不能有多個語句或分支。
例如,下面的lambda表達(dá)式定義了一個匿名函數(shù),它接受兩個參數(shù)x和y,并返回它們的和:
lambda x, y: x + y
可以把這個lambda表達(dá)式賦值給一個變量,然后像普通函數(shù)一樣調(diào)用它:
add = lambda x, y: x + yprint(add(3, 4)) # 7
也可以直接調(diào)用這個lambda表達(dá)式,不需要給它一個名稱,這就是為什么它叫做匿名函數(shù):
print((lambda x, y: x + y)(3, 4)) # 7
lambda表達(dá)式的優(yōu)點(diǎn)是可以讓你在需要一個簡單的函數(shù)時(shí),不用寫出完整的函數(shù)定義,從而節(jié)省代碼和時(shí)間。lambda表達(dá)式的缺點(diǎn)是可讀性較差,不適合編寫復(fù)雜的邏輯。
lambda表達(dá)式通常和一些高階函數(shù)一起使用,比如map、filter、reduce等,這些函數(shù)可以接受一個函數(shù)作為參數(shù),并對一個可迭代對象進(jìn)行操作。使用lambda表達(dá)式可以讓你在不定義額外的函數(shù)的情況下,實(shí)現(xiàn)一些簡單的功能。例如,下面的代碼使用map和lambda表達(dá)式,對一個列表中的每個元素求平方,并返回一個新的列表:
numbers = [1, 2, 3, 4, 5]squared = list(map(lambda x: x**2, numbers))print(squared) # [1, 4, 9, 16, 25]
聯(lián)系客服