对python list 遍历删除的正确方法详解


Posted in Python onJune 29, 2018

在遍历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用户管理系统的实例讲解
Dec 23 Python
基于Python中numpy数组的合并实例讲解
Apr 04 Python
pytorch 数据集图片显示方法
Jul 26 Python
Python3爬虫学习之将爬取的信息保存到本地的方法详解
Dec 12 Python
Python OpenCV对本地视频文件进行分帧保存的实例
Jan 08 Python
python实现词法分析器
Jan 31 Python
python 中如何获取列表的索引
Jul 02 Python
Python 实现数据结构-堆栈和队列的操作方法
Jul 17 Python
使用Python获取当前工作目录和执行命令的位置
Mar 09 Python
python爬虫使用scrapy注意事项
Nov 23 Python
python实现经典排序算法的示例代码
Feb 07 Python
解决pytorch-gpu 安装失败的记录
May 24 Python
通过Python模块filecmp 对文件比较的实现方法
Jun 29 #Python
Python之列表的插入&替换修改方法
Jun 28 #Python
python 寻找list中最大元素对应的索引方法
Jun 28 #Python
对numpy.append()里的axis的用法详解
Jun 28 #Python
Python读取英文文件并记录每个单词出现次数后降序输出示例
Jun 28 #Python
将Dataframe数据转化为ndarry数据的方法
Jun 28 #Python
Python格式化日期时间操作示例
Jun 28 #Python
You might like
mysql_connect localhost和127.0.0.1的区别(网络层阐述)
2015/03/26 PHP
php mysqli查询语句返回值类型实例分析
2016/06/29 PHP
php生成毫秒时间戳的实例讲解
2017/09/22 PHP
JavaScript获取GridView选择的行内容
2009/04/14 Javascript
javascript整除实现代码
2010/11/23 Javascript
异步加载script的代码
2011/01/12 Javascript
用JS做的简单的可折叠的两级树形菜单
2013/09/21 Javascript
使用jQuery解决IE与FireFox下createElement方法的差异
2013/11/14 Javascript
Nodejs+express+html5 实现拖拽上传
2014/08/08 NodeJs
php,js,css字符串截取的办法集锦
2014/09/26 Javascript
js的touch事件的实际引用
2014/10/13 Javascript
jquery移动点击的项目到列表最顶端的方法
2015/06/24 Javascript
jQuery禁用快捷键例如禁用F5刷新 禁用右键菜单等的简单实现
2016/08/31 Javascript
AngularJS实现用户登录状态判断的方法(Model添加拦截过滤器,路由增加限制)
2016/12/12 Javascript
Angularjs的启动过程分析
2017/07/18 Javascript
vue 项目打包通过命令修改 vue-router 模式 修改 API 接口前缀
2018/06/13 Javascript
一文了解vue-router之hash模式和history模式
2019/05/31 Javascript
微信小程序实现蒙版弹出窗功能
2019/09/17 Javascript
python爬虫之线程池和进程池功能与用法详解
2018/08/02 Python
对Python中Iterator和Iterable的区别详解
2018/10/18 Python
Python 运行 shell 获取输出结果的实例
2019/01/07 Python
django将网络中的图片,保存成model中的ImageField的实例
2019/08/07 Python
python 利用turtle模块画出没有角的方格
2019/11/23 Python
浅析Python 多行匹配模式
2020/07/24 Python
CSS3使用多列制作瀑布流
2016/05/10 HTML / CSS
CSS3 Flexbox中flex-shrink属性的用法示例介绍
2013/12/30 HTML / CSS
Joie官方网上商店:购买服装和女装配饰
2018/06/05 全球购物
后勤部长岗位职责
2013/12/14 职场文书
优秀的个人求职信范文
2014/05/09 职场文书
作风建设演讲稿
2014/05/23 职场文书
优秀学生干部事迹材料
2014/12/24 职场文书
2016年党支部公开承诺书
2016/03/25 职场文书
详解PHP设计模式之依赖注入模式
2021/05/25 PHP
「海贼王」112.9万粉丝纪念图标公布
2022/03/21 日漫
浅谈Redis 中的过期删除策略和内存淘汰机制
2022/04/03 Redis
Python简易开发之制作计算器
2022/04/28 Python