在進(jìn)行編程時,,一般我們會給一個函數(shù)或者變量起一個名字,,該名稱是用于引用或?qū)ぶ泛瘮?shù)變量。但是有一個低調(diào)的函數(shù),,你不需要賦予它名字,,因此該函數(shù)也叫匿名函數(shù)。該函數(shù)就是Python中的Lambda函數(shù),,下面就來為大家解析lambda函數(shù)的基本使用方法,。為什么要使用Python Lambda函數(shù)? 匿名函數(shù)可以在程序中任何需要的地方使用,,但是這個函數(shù)只能使用一次,,即一次性的。因此Python Lambda函數(shù)也稱為丟棄函數(shù),,它可以與其他預(yù)定義函數(shù)(如filter(),map()等)一起使用,。相對于我們定義的可重復(fù)使用的函數(shù)來說,這個函數(shù)更加簡單便捷,。如何在Python中編寫Lambda函數(shù),? Lambda函數(shù)是使用lambda運(yùn)算符創(chuàng)建的,其語法如下:語法: lambda參數(shù):表達(dá)式 Python lambda函數(shù)可以包含任意多的參數(shù),,但它只有一個表達(dá)式,。輸入或參數(shù)可以從0開始,。就像任何其他函數(shù)一樣,lambda函數(shù)也可以是沒有輸入的,。下面為大家舉個例子:假如我們計算一個數(shù)的平方,,則程序為:a = lambda x: x*x print(a(3) 輸出結(jié)果為:9 相應(yīng)的,如果我們要計算兩個數(shù)相乘,,則:a = lambda x,y: x*y print(a(3,7)) 輸出結(jié)果為:21 在這兩個例子中,,第一個示例lambda函數(shù)只使用一個表達(dá)式,而第二個示例有兩個參數(shù),。而且這兩個函數(shù)都有一個表達(dá)式后跟參數(shù),。因此有多種邏輯關(guān)系表達(dá)式的時候不能使用lambda函數(shù)。匿名函數(shù)加速Python運(yùn)行 在比較所需的代碼量之前,,讓我們首先記下正常函數(shù)的語法,,并將其與前面描述的lambda函數(shù)進(jìn)行比較。Python中的任何普通函數(shù)都是使用def關(guān)鍵字定義的,,具體語法如下所示: def function_name(參數(shù)): statement(s) 因此lambda函數(shù)所需的代碼量遠(yuǎn)遠(yuǎn)少于普通函數(shù),,也就是說使用Lambda可以精簡代碼,加速Python程序運(yùn)行,。讓我們舉個例子對比一下:#——————————一般函數(shù) def my_func(x): return x * x print(my_func(3)) #————————Lambda函數(shù) a = lambda x,y: x*y print(a(3,7)) 在上面的示例中,我們需要在my_func中使用return語句來計算3的平方值,。相反,,lambda函數(shù)不使用此return語句,因此Lambda函數(shù)計算的速度快于my_func函數(shù),。小編為大家準(zhǔn)備了一些Python函數(shù)視頻資料免費(fèi)分享給大家,,希望可以幫助到大家。轉(zhuǎn)發(fā)此文,,關(guān)注并私信小編“學(xué)習(xí)”即可免費(fèi)獲取 Python Lambda函數(shù)的幾種使用方法 示例一:定義一個普通的python函數(shù)并嵌入Lambda,,函數(shù)接收傳入的一個參數(shù)x。然后將此參數(shù)添加到lambda函數(shù)提供的某個未知參數(shù)y中求和,。只要我們使用new_func(),,就會調(diào)用new_func中存在的lambda函數(shù)。每次,,我們都可以將不同的值傳遞給參數(shù),。def new_func(x): return(lambda y:x + y) t = new_func(3) u = new_func(2) print(t(3)) print(u(3)) 輸出結(jié)果為:6,5示例二:Lambda函數(shù)+filter函數(shù) filter()方法用于根據(jù)一定的條件對給定的列表進(jìn)行過濾,。使用示例如下:my_list = [2,3,4,5,6,7,8] new_list = list(filter(lambda a:(a / 3 == 2),my_list)) print(new_list) 輸出結(jié)果為:[6],。 此示例中my_list是一個列表,它作為參數(shù)傳遞給filter函數(shù),。此函數(shù)使用lambda函數(shù)檢查列表中的值是否滿足除以3等于2的條件,,輸出列表中滿足條件的值,。示例三:Lambda函數(shù)+map函數(shù) Python中的map()函數(shù)是一個將給定的列表的值依次在所定義的函數(shù)關(guān)系中迭代并返回一個新列表。例如:my_list = [2,3,4,5,6,7,8] new_list = list(map(lambda a:(a / 3,!= 2),,li)) print(new_list) 輸出結(jié)果為:[真,真,,真,,真,假,,真,,真]示例四:Lambda函數(shù)+reduce函數(shù) reduce() 函數(shù)會對參數(shù)序列中元素進(jìn)行累積。使用示例如下:from functools import reduce reduce(lambda a,,b:a + b,,[23,21,45,98]) 輸出結(jié)果為:187 參考 https:///edureka/python-lambda-b84d68d449a0 |
|