廖雪峰python函數(shù) python教程廖

Python 中關(guān)于filter函數(shù)問(wèn)題求教

看文字的話會(huì)很亂,和圖一起看會(huì)好一點(diǎn)

目前創(chuàng)新互聯(lián)建站已為千余家的企業(yè)提供了網(wǎng)站建設(shè)、域名、網(wǎng)站空間、網(wǎng)站托管、服務(wù)器租用、企業(yè)網(wǎng)站設(shè)計(jì)、津南網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長(zhǎng),共同發(fā)展。

首先,it是個(gè)生成器(_odd_iter),并使n=3,隨后,it作為一個(gè)生成器存在于filter對(duì)象中(迭代器),并使it為一個(gè)filter對(duì)象,經(jīng)過(guò)循環(huán),到達(dá)next語(yǔ)句,先計(jì)算it _odd_iter(生成器),生成了新的數(shù)之后,開始計(jì)算filter。第一次循環(huán)的時(shí)候第18行的代碼相當(dāng)于 it = filter(_not_divisible(3), it ),等號(hào)右面的it還在等待next調(diào)用生成值,生成值之后,就將它代入為lambda的x中……第二次循環(huán)的時(shí)候第18行代碼變成 it = filter(_not_divisible(5), filter(_not_divisible(3), it ) ),同樣等號(hào)右面的it仍然在等待next調(diào)用生成新的值

我剛看這個(gè)教程,不知道對(duì)不對(duì)。。。

對(duì)了我看見有一個(gè)人問(wèn)把代碼第18行改成 it = filter(lambda x: x % n 0, it)

會(huì)失去過(guò)濾功能,我覺得,lambda是一個(gè)臨時(shí)函數(shù),所以覺得像filter(div(5), filter(div(3), it))這種存在多個(gè)lambda臨時(shí)函數(shù)的話是很奇怪的,

在調(diào)試時(shí),發(fā)現(xiàn)filter只檢測(cè)了一個(gè)n(最近被賦值的),相當(dāng)于7%5,9%7這樣,因此失去過(guò)濾素?cái)?shù)功能。模擬一下,在將要輸出5的時(shí)候,it = filter()的那行代碼變?yōu)椋?/p>

it = filter(lambda x : x % n 0 , filter (lambda x : x % n 0 , it ) ),it將值賦給x,但是,我覺得n被賦值時(shí),會(huì)刷新其他lambda中的n,造成類似于 it =?filter(lambda x : x % 5 0 , filter (lambda x : x % 5 0 , it ) )的情況

python 中 return lambda 怎么理解?

lambda或者高階函數(shù)是一種設(shè)計(jì)模式,是否適合應(yīng)該要看更大范圍的設(shè)計(jì)需要。

脫離了需求場(chǎng)景,返回lambda根本是脫褲子放屁。

廖雪峰的python教程有一點(diǎn)地方?jīng)]看明白,求指導(dǎo)

題主貼了兩遍函數(shù),似乎是一樣的,下面就分析這一個(gè)版本:

def?add_end(L=None):

if?L?is?None:

L?=?[]

L.append('END')

return?L

不明白題主說(shuō)的“一直往里面加END”是怎么回事。函數(shù)里既沒(méi)有循環(huán)也沒(méi)有遞歸,怎么會(huì)“一直”加。。。

關(guān)于默認(rèn)參數(shù),其作用是:使?add_end()的返回值 與?add_end(None)的返回值相同。因此下面不再單獨(dú)分析輸入0個(gè)參數(shù)的情形。

“return的L是全局變量,而傳入的參數(shù)L是局部變量”這個(gè)說(shuō)法很奇怪。當(dāng)傳入的L是None時(shí),該函數(shù)的會(huì)新生成一個(gè)list,向其中加入一個(gè)字符串‘END’,并返回這個(gè)新生成的list。而當(dāng)傳入的L是一個(gè)list,哪怕是空l(shuí)ist時(shí),該函數(shù)的作用是向傳入的這個(gè)L新加一個(gè)元素'END',并返回傳入的那個(gè)L。

L.append('END')這一行,如果縮進(jìn)的話:當(dāng)函數(shù)傳入的L不是None時(shí),就不會(huì)向傳入的這個(gè)L新加一個(gè)元素'END'。因此縮進(jìn)與不縮進(jìn)的效果是不一樣的。

標(biāo)題名稱:廖雪峰python函數(shù) python教程廖
URL鏈接:http://muchs.cn/article2/doshcoc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供電子商務(wù)響應(yīng)式網(wǎng)站、定制開發(fā)搜索引擎優(yōu)化、品牌網(wǎng)站制作、建站公司

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

手機(jī)網(wǎng)站建設(shè)