av一区二区在线观看_亚洲男人的天堂网站_日韩亚洲视频_在线成人免费_欧美日韩精品免费观看视频_久草视

您的位置:首頁技術(shù)文章
文章詳情頁

基于python for in if 連著寫與分開寫的區(qū)別說明

瀏覽:3日期:2022-06-24 09:53:38
如下:

links.extend(link for link in get_links(html) if re.match(link_regex, link))# 上面的語句分開寫,如下# 但下面需要使用links.append,如果依然使用links.extend會(huì)出現(xiàn)錯(cuò)誤的結(jié)果for link in get_links(html): if re.match(link_regex, link): links.append(link)

讓我們用ipython做個(gè)實(shí)驗(yàn):

基于python for in if 連著寫與分開寫的區(qū)別說明

由上圖可以看出,for in if 連擊推導(dǎo)式隱式的將link由str轉(zhuǎn)變?yōu)榱薼ist,而分開寫是不會(huì)幫我們轉(zhuǎn)換的,所以需要使用append把整個(gè)str加入到list.

補(bǔ)充:python的for i in list 陷阱

d = [1,2,3,4,5]for i in d: d.remove(i)print d

結(jié)果是 :

[2, 4]

這個(gè)陷阱比較隱蔽,我再用白盒子測(cè)試的時(shí)候,發(fā)現(xiàn)了這個(gè)bug,大致原因就是remove d[0]之后,i 自動(dòng)變成了 d[1], 但是 d已經(jīng)變成了 d[2,3,4,5],所以i=d[1]就悲催的指向了3,跳過了2!

看來python還是要注意了解底層實(shí)現(xiàn)啊!

解決辦法是

d = [1,2,3,4,5]for i in d[:]: d.remove(i)print d

就可以實(shí)現(xiàn)邊遍歷邊刪除了

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持好吧啦網(wǎng)。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 久久国产精品久久 | 一区天堂 | 日本高清精品 | 日韩毛片中文字幕 | 国产aaaaav久久久一区二区 | 日韩欧美三级 | 91视频大全 | 欧美簧片| 区一区二在线观看 | 天天影视亚洲综合网 | 欧美成视频 | 国产日韩精品久久 | 天天干天天草 | 羞羞视频一区二区 | 中文一区二区 | 古典武侠第一页久久777 | 天天弄天天操 | 午夜欧美 | 久久久久久久久久久久久9999 | 中文精品一区二区 | 欧美视频二区 | 波多野吉衣在线播放 | 亚洲美女一区 | 四虎影院新地址 | 美女久久视频 | 亚洲精品一区二三区不卡 | 国产成人精品一区二三区在线观看 | 日韩中文字幕一区二区 | 国产精品一区二区三区四区 | 日韩视频一级 | 欧美一区免费在线观看 | 日韩一区二区三区精品 | 久久成人国产 | 久久激情av| 欧美一区二区三区在线观看视频 | 在线欧美日韩 | 91欧美激情一区二区三区成人 | 2018国产精品 | 国产精品久久久久aaaa樱花 | 99精品免费 | 成人二区三区 |