Python?lambda函數(shù)保姆級使用教程
你應(yīng)該聽說過,應(yīng)用Python,可以讓你處理一天的重復(fù)工作量,縮短到幾分鐘甚至更短。從此解放上班時間,研究更多更有效率的工作方法。進(jìn)一步提升工作效率,讓工作更出彩。這不是廣告,這是實(shí)錘圖片。
一、lambda函數(shù)的定義
lambda函數(shù)是Python中常用的內(nèi)置函數(shù),又稱為匿名函數(shù)。和普通函數(shù)相比,它只有函數(shù)體,省略了def和return,使得結(jié)構(gòu)看起來更精簡。其基本調(diào)用語法如下:
lambda [var1 [,var2,…varn]]:expression
[var1 [,var2,…varn]]:形式參數(shù),可以理解為入?yún)?,供表達(dá)式使用。
expression:函數(shù)表達(dá)式,其結(jié)果為lambda函數(shù)的返回值。
二、lambda函數(shù)實(shí)例
lambda函數(shù)和普通函數(shù)對比
定義一個lambda函數(shù),將其賦值給一個變量,通過這個變量間接調(diào)用該函數(shù)。
fun_1 = lambda a,b: a*2+b*3 fun_1(1,2)
得到結(jié)果:
8
其中a,b是形式參數(shù),即入?yún)ⅲ┍磉_(dá)式a2+b3使用。
定義一個普通函數(shù),語句如下:
def fun1(a,b): return a*2+b*3 fun1(1, 2)
得到結(jié)果:
8
可以發(fā)現(xiàn)應(yīng)用lambda函數(shù)和普通函數(shù)的區(qū)別是少了def和return語句,且lambda函數(shù)直接寫在了一行,顯得更加精簡。不過在這里還沒有體現(xiàn)出匿名的屬性。
求一個一元二次方程
在上初中的時候,我們常常可以看到這樣一個題目:F(x)=ax^2+bx+c,求當(dāng)a=2,b=3,c=4時,F(xiàn)(-1)、F(2)、F(5)的值。
方法一:應(yīng)用lambda函數(shù)求解
F_x = lambda x:2*x**2+3*x+4 print(F_x(-1)) print(F_x(2)) print(F_x(5))
得到結(jié)果:
3
18
69
方法二:應(yīng)用普通函數(shù)求解
def F_x(x): return 2*x**2+3*x+4 print(F_x(-1)) print(F_x(2)) print(F_x(5))
得到結(jié)果:
3
18
69
可以發(fā)現(xiàn)應(yīng)用lambda函數(shù)和普通函數(shù)的求解結(jié)果是一樣的。
和高階函數(shù)filter配合使用
高階函數(shù)filter在后續(xù)文章中會詳細(xì)說明,它主要用來對列表進(jìn)行過濾,挑選出列表中符合特定條件的值。比如想挑選出數(shù)列中3的倍數(shù),語句如下:
cs_data = list([2, 8, 11, 12, 15, 6, 1, 7]) list(filter(lambda x:x%3==0, cs_data))
得到結(jié)果:
[12, 15, 6]
用常識也可以看出,最后的結(jié)果是挑選出了數(shù)列cs_data中3的倍數(shù)。和高階函數(shù)配合使用時,lambda函數(shù)的優(yōu)點(diǎn)就進(jìn)一步凸顯出來了。這時不需要提前定義一個普通函數(shù),直接在高階函數(shù)內(nèi)部將lambda函數(shù)的結(jié)果作為參數(shù)傳遞給高階函數(shù)即可,也真正做到了匿名。
和sorted函數(shù)配合使用
如果我們想對一個數(shù)列按數(shù)值的絕對值進(jìn)行排列,可以應(yīng)用sorted函數(shù)和lambda函數(shù)配合實(shí)現(xiàn),語句如下:
my_list = [3, 5, -2, 10, -6, 8] sorted(my_list, key=lambda x:abs(x))
得到結(jié)果:
[-2, 3, 5, -6, 8, 10]
可以發(fā)現(xiàn)得到的結(jié)果是按數(shù)值的絕對值排序后的數(shù)列。
到此這篇關(guān)于Python lambda函數(shù)保姆級使用教程的文章就介紹到這了,更多相關(guān)Python lambda函數(shù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python如何實(shí)現(xiàn)wifi自動連接,解決電腦wifi經(jīng)常斷開問題
這篇文章主要介紹了python實(shí)現(xiàn)wifi自動連接,解決電腦wifi經(jīng)常斷開的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-06-06Python使用Matplotlib實(shí)現(xiàn)雨點(diǎn)圖動畫效果的方法
這篇文章主要介紹了Python使用Matplotlib實(shí)現(xiàn)雨點(diǎn)圖動畫效果的方法,結(jié)合實(shí)例形式分析了win10安裝ffmpeg及animation函數(shù)的使用相關(guān)操作技巧,需要的朋友可以參考下2017-12-12Anaconda最新版2023安裝教程Spyder安裝教程圖文詳解
這篇文章主要介紹了Anaconda最新版2023安裝教程Spyder安裝教程,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-05-05python向xls寫入數(shù)據(jù)(包括合并,邊框,對齊,列寬)
這篇文章主要介紹了python向xls寫入數(shù)據(jù)(包括合并,邊框,對齊,列寬),幫助大家更好的利用python處理表格,感興趣的朋友可以了解下2021-02-02Python 字典與字符串的互轉(zhuǎn)實(shí)例
下面小編就為大家?guī)硪黄狿ython 字典與字符串的互轉(zhuǎn)實(shí)例。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-01-01如何在mac環(huán)境中用python處理protobuf
這篇文章主要介紹了如何在mac環(huán)境中用python處理protobuf,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2019-12-12