2018-03-03
循环中 in 和 remove
a = [i for i in range(10)]
随便删除一个0-9的数 比如4
for index, value in enumerate(a):
if value == 4:
a.remove(value)
print(index, value)
输出:
0 0
1 1
2 2
3 3
4 4
5 6
6 7
7 8
8 9
由上可见, 当remove后,使用in循环,下标不会停一下,而是继续往后走,可是新的元素会填补这个位置,所以位置4删除后 会直接到位置5,位置4的新元素会被跳过去。。。
在现实开发中,in循环下满足条件remove后,会跳过某些元素,当谨记~
本文通过一个具体的Python示例展示了在遍历列表的同时删除元素时遇到的问题。这种操作会导致某些元素被跳过,从而影响数据处理的完整性。文章强调了在实际开发中应避免在循环中直接修改正在迭代的集合。
1220

被折叠的 条评论
为什么被折叠?



