大家好,我是金魚座燥滑,一個走在測試領域這片藍海中, 蹉跎前行的技術(shù)渣渣阿逃,唯有一直走下去铭拧,也許能改變點什么赃蛛,加油!
For循環(huán)大家都知道日常的基本使用:
image.png
看上圖給人的錯覺是for .. in ..這種方式取值是根據(jù)list中的具體值進行直接取值的
可是真的是這樣的嗎搀菩?
看下面的一個例子
image.png
我們會發(fā)現(xiàn)一個很奇怪的現(xiàn)象呕臂,讓lista 遍歷刪除i后,發(fā)現(xiàn)lista只打印了部分肪跋,并且lista中還剩下部分數(shù)據(jù)未刪除
如果按照最開始的取值的思路歧蒋,那么應該remove的操作應該是針對所有的值
通過這種對比可以知道,for..in..實際的取值也是根據(jù)索引來進行取值州既,拿第二個圖為例:
為什么是打印1,3,5谜洽?
index = 0 ******************* index=1 ***************** index=2
[1,2,3,4,5,6] > remove(1)> [2,3,4,5,6] >remove(3)> [2,4,5,6] >remove(5)> [2,4,6]
此時【2,4,6】內(nèi)部最大索引只有2,所以程序無法在繼續(xù)執(zhí)行
最后的結(jié)果就是打印了1,3,5吴叶, 留下來2,4,6