python_基础篇_for..in..循环你不知道的另一面

大家好,我是金鱼座,一个走在测试领域这片蓝海中, 蹉跎前行的技术渣渣,唯有一直走下去,也许能改变点什么,加油!

For循环大家都知道日常的基本使用:


image.png

看上图给人的错觉是for .. in ..这种方式取值是根据list中的具体值进行直接取值的

可是真的是这样的吗?

看下面的一个例子


image.png

我们会发现一个很奇怪的现象,让lista 遍历删除i后,发现lista只打印了部分,并且lista中还剩下部分数据未删除

如果按照最开始的取值的思路,那么应该remove的操作应该是针对所有的值

通过这种对比可以知道,for..in..实际的取值也是根据索引来进行取值,拿第二个图为例:
为什么是打印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】内部最大索引只有2,所以程序无法在继续执行

最后的结果就是打印了1,3,5, 留下来2,4,6

你可能感兴趣的:(python_基础篇_for..in..循环你不知道的另一面)