文中與你一起探尋Python中的lambda變量,使你以有限的時間搞清楚這一函數(shù)的基本原理。也可以通過碎片化時長夯實(shí)這一變量,使你在解決操作過程中更有效
你就應(yīng)該聽過,運(yùn)用Python,能夠讓你解決一整天的反復(fù)任務(wù)量,減少到一會乃至較短。此后釋放工作時間,科學(xué)研究一個更高效率方式方法。更進(jìn)一步提高工作效率,讓運(yùn)行更出色。這個不是廣告宣傳,這也是石錘圖片。
一、lambda函數(shù)的概念
lambda函數(shù)是Python常用的內(nèi)置函數(shù),也稱為匿名函數(shù)。與普通變量比照,它僅有函數(shù)體,省去了def和return,促使構(gòu)造看起來更加精減。其基本上啟用詞法如下所示:
lambda[var1[,var2,…varn]]:expression
[var1[,var2,…varn]]:形式參數(shù),可以看作入?yún)?,供關(guān)系式應(yīng)用。
expression:函數(shù)表達(dá)式,最終的結(jié)果為lambda函數(shù)的返回值。
二、lambda變量案例
lambda變量與普通變量比照
定義一個lambda函數(shù),將其賦值給一個變量,通過這個變量間接調(diào)用該函數(shù)。
fun_1=lambdaa,b:a*2+b*3 fun_1(1,2)
得到結(jié)果:
8
其中a,b是形式參數(shù),即入?yún)?,供表達(dá)式a2+b3使用。
定義一個普通函數(shù),語句如下:
deffun1(a,b): returna*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=lambdax: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ù)求解
defF_x(x): return2*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(lambdax: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=lambdax:abs(x))
可以發(fā)現(xiàn)得到的結(jié)果是按數(shù)值的絕對值排序后的數(shù)列。
綜上所述,這篇文章就給大家介紹到這里了,希望可以給大家?guī)韼椭?/p>
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/128814.html
摘要:輔之以事件循環(huán),協(xié)程可用于異步處理,尤其是在中。當(dāng)前支持的協(xié)程基于增強(qiáng)型生成器,于版本開始采用。新的特性中,異步還有兩種新用途異步內(nèi)容管理器和迭代器。 現(xiàn)在 Python 已經(jīng)支持用協(xié)程進(jìn)行異步處理。但最近有建議稱添加協(xié)程以全面完善 Python 的語言結(jié)構(gòu),而不是像現(xiàn)在這樣把他們作為生成器的一個類型。此外,兩個新的關(guān)鍵字———異步(async)和等待(await),都該添加到 Pyt...
摘要:沒想到老師下課點(diǎn)名了,老師李。一哥們答到老師咦,李,你站起來一下這哥們低著腦袋站起來了,老師表格上面寫的李是個女的啊這是不知道從哪個角落傳來一聲討厭啊,人家就是個女的了啦。 SpliderApi https://github.com/ecitlm/Spl... 基于nodejs 的爬蟲 API接口項(xiàng)目,包括前端開發(fā)日報(bào)、知乎日報(bào)、前端top框架排行、妹紙福利、搞笑視頻/ 熱點(diǎn)新聞資訊 ...
摘要:前言本文純屬個人平時實(shí)踐過程中的一些經(jīng)驗(yàn)總結(jié),算是一點(diǎn)點(diǎn)小技巧吧,不是多么高明的技術(shù),如果對你有幫助,那么不勝榮幸。由于涉嫌投機(jī)取巧,可能會帶來一些不符合規(guī)范的副作用,請根據(jù)項(xiàng)目要求酌情使用。 前言 本文純屬個人平時實(shí)踐過程中的一些經(jīng)驗(yàn)總結(jié),算是一點(diǎn)點(diǎn)小技巧吧,不是多么高明的技術(shù),如果對你有幫助,那么不勝榮幸。 本文不涉及罕見API使用方法等,大部分內(nèi)容都是基于對vue的一些實(shí)踐而已。...
閱讀 923·2023-01-14 11:38
閱讀 895·2023-01-14 11:04
閱讀 756·2023-01-14 10:48
閱讀 2055·2023-01-14 10:34
閱讀 961·2023-01-14 10:24
閱讀 840·2023-01-14 10:18
閱讀 510·2023-01-14 10:09
閱讀 588·2023-01-14 10:02