Python如何在循环内使用list.remove()


Posted in Python onJune 01, 2020

代码如下

dat=['1', '2', '3', '0', '0', '0']

for item in dat:
  if item == '0':
    dat.remove(item)
print(dat)
#按要求是把'0'都删掉的,输出结果是['1', '2', '3', '0'] ??

首先,remove(x) 移除的是序列首次碰到的元素x

理解:

遍历列表,item每一次都会变化,可以想象有一个指针指向后一个元素,指针是递增的,从头元素到尾元素直至遍历完。

容易想到指针 0 --> 1 --> 2 --> 3

到第四个元素(dat[3]), dat[3]=='0',dat.remove(item), dat=['1','2','3','0','0'] #列表现在有五个元素

继续:

指针指向第五个元素(dat[4]),dat[4]=='0',dat.remove(item), dat=['1','2','3','0'] #列表现在有四个元素

继续:

指针指向(查找)下一个元素(第六个),哎? 此时dat列表只剩下四个元素,找不到第六个,自然就结束循环了!

得出:

列表的增删操作最好不要在for循环里做,迭代内容随着循环而改变了,这样既不安全也没必要,

换句话说,就是在循环的时候,不要让循环体的(指针/索引)啥的发生变化。

解决:

可以通过复制一个新的表来做删除操作

dat=['1', '2', '3', '0', '0', '0']
d = dat.copy()
for item in dat:
  if item == '0':
    d.remove(item)
print(d)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python使用WMI检测windows系统信息、硬盘信息、网卡信息的方法
May 15 Python
Django框架中方法的访问和查找
Jul 15 Python
Python实现字符串逆序输出功能示例
Jun 24 Python
Python中一行和多行import模块问题
Apr 01 Python
python3中获取文件当前绝对路径的两种方法
Apr 26 Python
python TKinter获取文本框内容的方法
Oct 11 Python
Python面向对象类编写细节分析【类,方法,继承,超类,接口等】
Jan 05 Python
Python 批量刷博客园访问量脚本过程解析
Aug 30 Python
pytorch ImageFolder的覆写实例
Feb 20 Python
配置python的编程环境之Anaconda + VSCode的教程
Mar 29 Python
python 瀑布线指标编写实例
Jun 03 Python
基于python+selenium自动健康打卡的实现代码
Jan 13 Python
IntelliJ 中配置 Anaconda的过程图解
Jun 01 #Python
解决python中import文件夹下面py文件报错问题
Jun 01 #Python
浅谈Python中文件夹和python package包的区别
Jun 01 #Python
python 通过文件夹导入包的操作
Jun 01 #Python
Python matplotlib可视化实例解析
Jun 01 #Python
python代码如何注释
Jun 01 #Python
python爬虫实例之获取动漫截图
May 31 #Python
You might like
从零开始 教你如何搭建Discuz!4.1论坛
2006/07/07 PHP
PHP制作图型计数器的例子
2006/10/09 PHP
PHP中怎样保持SESSION不过期 原理及方案介绍
2013/08/08 PHP
php求斐波那契数的两种实现方式【递归与递推】
2019/09/09 PHP
javascript 处理事件绑定的一些兼容写法
2009/12/24 Javascript
在jQuery 1.5中使用deferred对象的代码(翻译)
2011/03/10 Javascript
在javascript中关于节点内容加强
2013/04/11 Javascript
jquery、js调用iframe父窗口与子窗口元素的方法整理
2014/07/31 Javascript
node.js中的http.response.getHeader方法使用说明
2014/12/14 Javascript
原生javaScript实现图片延时加载的方法
2014/12/22 Javascript
纯js实现无限空间大小的本地存储
2015/06/18 Javascript
Javascript编写2048小游戏
2015/07/07 Javascript
JS实现的数字格式化功能示例
2017/02/10 Javascript
基于AGS JS开发自定义贴图图层
2017/03/31 Javascript
JavaScript面向对象精要(上部)
2017/09/12 Javascript
Node.js利用断言模块assert进行单元测试的方法
2017/09/28 Javascript
Vue最新防抖方案(必看篇)
2019/10/30 Javascript
vue实现自定义多选按钮
2020/07/16 Javascript
Python入门教程之if语句的用法
2015/05/14 Python
python文件名和文件路径操作实例
2017/09/29 Python
Python音频操作工具PyAudio上手教程详解
2019/06/26 Python
Django框架静态文件处理、中间件、上传文件操作实例详解
2020/02/29 Python
Anaconda3中的Jupyter notebook添加目录插件的实现
2020/05/18 Python
River Island美国官网:英国高街时尚品牌
2018/09/04 全球购物
日常奢侈品,轻松购物:Verishop
2019/08/20 全球购物
Linux面试经常问的文件系统操作命令
2015/11/05 面试题
教师自我评价范例
2013/09/24 职场文书
前厅部经理岗位职责范文
2014/02/04 职场文书
趣味游戏活动方案
2014/02/07 职场文书
菜篮子工程实施方案
2014/03/08 职场文书
大气污染防治方案
2014/05/19 职场文书
租房协议书样本
2014/08/20 职场文书
实现中国梦思想汇报2014
2014/09/13 职场文书
学习经验交流会策划书
2015/11/02 职场文书
商业计划书格式、范文
2019/03/21 职场文书
Windows Server 版本 20H2 于 8 月 9 日停止支持,Win10 版本 21H1 将于 12 月结束支
2022/07/23 数码科技