在遍历list的时候,删除符合条件的数据,可是总是报异常,代码如下:
num_list = [1, 2, 3, 4, 5]
print(num_list)
for i in range(len(num_list)):
if num_list[i] == 2:
num_list.pop(i)
else:
print(num_list[i])
print(num_list)
原因是在删除list中的元素后,list的实际长度变小了,但是循环次数没有减少,依然按照原来list的长度进行遍历,所以会造成索引溢出。
解决方案:倒序循环删除
num_list = [1, 2, 3, 4, 5]
print(num_list)
for i in range(len(num_list)-1, -1, -1): # for i in range(0, num_list.__len__())[::-1]
if num_list[i] == 2:
num_list.pop(i)
else:
print(num_list[i])
print(num_list)
以上这篇对python list 遍历删除的正确方法详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持软件开发网。
您可能感兴趣的文章:Python简单遍历字典及删除元素的方法python 实现数组list 添加、修改、删除的方法python 删除列表里所有空格项的方法总结