成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

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

python簡(jiǎn)單的問(wèn)題,智商不夠用了。。。

瀏覽:197日期:2022-08-28 15:26:47

問(wèn)題描述

為何遍歷a只遍歷3次?智商不夠了,list里最后一個(gè)為何沒(méi)遍歷到?智商不夠了。。。

a = ['asd_1','asd_2','3','4']b = afor i in a: print(i) if i.find(’asd_’) < 0:b.remove(i)

輸出:asd_1asd_23

問(wèn)題解答

回答1:

因?yàn)榱斜砩峡勺儗?duì)象啊,a和b其實(shí)只想的是同一個(gè)地址,在b上面remove會(huì)影響a的迭代,不信你把a(bǔ)打印出來(lái)看

a = ['asd_1', 'asd_2', '3', '4']b = afor i in a: print(i) if i.find(’asd_’) < 0:b.remove(i)print a

輸出:

asd_1asd_23[’asd_1’, ’asd_2’, ’4’]

這時(shí)a的長(zhǎng)度已經(jīng)變成3了

回答2:

上面的代碼,b只是a的引用,你修改了b,a也被修改了,直接影響了a的迭代.

你可以試試

b = a.copy()

或者

b = a[:]

標(biāo)簽: Python 編程