for循环中删除精灵的处理
range(0,5)
包括0,但不包括5
list = [1,2,3,4,5,6,7]
for i in range(0,len(list),1):
print(i)
if list[i] == 2:
del list[i]
#print (list[i])
这里删除第二个元素后,list中只有6个元素了,但是range循环里面的变量只在第一次
进行计算,也就是说list还是认为个数为1,则在遍历到最后一个时会出现越界访问的情况。
解决方法:
#从最后一个开始遍历,遍历到-1前面的即0,但是这里要写-1,因为range(5,0)是不包括0的
#步进值则为-1即可。
for i in range(len(list)-1,-1,-1):
print(i)
if list[i] == 2:
del list[i]