在python 中進(jìn)行一次簡單的列表循環(huán),當(dāng)用到remove時出現(xiàn)了一個很有趣的現(xiàn)象,
代碼如下:
1 a=range(30)2 for i in a :3 if i%4!=0:4 a.remove(i)
這段代碼是在a里取i 當(dāng)i不能夠整除4 的時候,a就在自己里面刪除這個時候的i 值,最后輸出的a的結(jié)果應(yīng)該是[0,4,8,12,16,20,24,28],結(jié)果真的是這樣嗎?
1 a=range(30)2 for i in a :3 if i%4!=0:4 a.remove(i)5 6 a7 [0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28]
這個時候出現(xiàn)的結(jié)果完全不一樣,2,6,10這些根本不對,那么為什么?。磕敲催@里就得說一下for in和remove了,
For in 是對下標(biāo)進(jìn)行操作,而remove是對值進(jìn)行操作