在遍历list的时候,删除符合条件的数据,可是总是报异常,代码如下:
1
2
3
4
5
6
7
8
9
10
|
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的长度进行遍历,所以会造成索引溢出。
解决方案:倒序循环删除
1
2
3
4
5
6
7
8
9
10
|
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 遍历删除的正确方法详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持服务器之家。
原文链接:https://blog.csdn.net/u011138533/article/details/75425934