由于删除列表中的数据后,列表长度会发生变化,因此Python在循环删除列表中的数据时经常发生索引溢出错误,如:
a=[1,3,7,3,2,5]
for i in range(len(a)):
if a[i]<3:
del a[i]
print(a)
产生IndexError: list index out of range
可采用倒序遍历来解决此问题:
a=[1,3,7,3,2,5]
for i in range(len(a)-1,-1,-1):
if a[i]<3:
del a[i]
print(a)
输出:[3, 7, 3, 5]