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后,会跳过某些元素,当谨记~