在進行編程時,一般我們會給一個函數(shù)或者變量起一個名字,該名稱是用于引用或?qū)ぶ泛瘮?shù)變量。但是有一個低調(diào)的函數(shù),你不需要賦予它名字,因此該函數(shù)也叫匿名函數(shù)。該函數(shù)就是Python中的Lambda函數(shù),下面就來為大家解析lambda函數(shù)的基本使用方法。為什么要使用Python Lambda函數(shù)? 匿名函數(shù)可以在程序中任何需要的地方使用,但是這個函數(shù)只能使用一次,即一次性的。因此Python Lambda函數(shù)也稱為丟棄函數(shù),它可以與其他預定義函數(shù)(如filter(),map()等)一起使用。相對于我們定義的可重復使用的函數(shù)來說,這個函數(shù)更加簡單便捷。如何在Python中編寫Lambda函數(shù)? Lambda函數(shù)是使用lambda運算符創(chuàng)建的,其語法如下:語法: lambda參數(shù):表達式 Python lambda函數(shù)可以包含任意多的參數(shù),但它只有一個表達式。輸入或參數(shù)可以從0開始。就像任何其他函數(shù)一樣,lambda函數(shù)也可以是沒有輸入的。下面為大家舉個例子:假如我們計算一個數(shù)的平方,則程序為:a = lambda x: x*x print(a(3) 輸出結(jié)果為:9 相應的,如果我們要計算兩個數(shù)相乘,則:a = lambda x,y: x*y print(a(3,7)) 輸出結(jié)果為:21 在這兩個例子中,第一個示例lambda函數(shù)只使用一個表達式,而第二個示例有兩個參數(shù)。而且這兩個函數(shù)都有一個表達式后跟參數(shù)。因此有多種邏輯關(guān)系表達式的時候不能使用lambda函數(shù)。匿名函數(shù)加速Python運行 在比較所需的代碼量之前,讓我們首先記下正常函數(shù)的語法,并將其與前面描述的lambda函數(shù)進行比較。Python中的任何普通函數(shù)都是使用def關(guān)鍵字定義的,具體語法如下所示: def function_name(參數(shù)): statement(s) 因此lambda函數(shù)所需的代碼量遠遠少于普通函數(shù),也就是說使用Lambda可以精簡代碼,加速Python程序運行。讓我們舉個例子對比一下:#——————————一般函數(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ù)。小編為大家準備了一些Python函數(shù)視頻資料免費分享給大家,希望可以幫助到大家。轉(zhuǎn)發(fā)此文,關(guān)注并私信小編“學習”即可免費獲取 ![]() 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ù)一定的條件對給定的列表進行過濾。使用示例如下: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ù)序列中元素進行累積。使用示例如下:from functools import reduce reduce(lambda a,b:a + b,[23,21,45,98]) 輸出結(jié)果為:187 ![]() 參考 https:///edureka/python-lambda-b84d68d449a0 |
|