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的函数的一些高阶特性
Apr 27 Python
Python正则获取、过滤或者替换HTML标签的方法
Jan 28 Python
读写json中文ASCII乱码问题的解决方法
Nov 05 Python
Python实现两个list对应元素相减操作示例
Jun 09 Python
python+tkinter编写电脑桌面放大镜程序实例代码
Jan 16 Python
Ubuntu下使用python读取doc和docx文档的内容方法
May 08 Python
Python DataFrame 设置输出不显示index(索引)值的方法
Jun 07 Python
Python3实现的判断回文链表算法示例
Mar 08 Python
详解python校验SQL脚本命名规则
Mar 22 Python
利用Python的folium包绘制城市道路图的实现示例
Aug 24 Python
Python‘==‘ 及 ‘is‘相关原理解析
Sep 05 Python
python 实现Harris角点检测算法
Dec 11 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
在线竞拍系统的PHP实现框架(一)
2006/10/09 PHP
让你成为更出色的PHP开发者的10个技巧
2011/02/25 PHP
国外PHP程序员的13个好习惯小结
2012/02/20 PHP
php共享内存段示例分享
2014/01/20 PHP
php生成数字字母的验证码图片
2015/07/14 PHP
thinkphp3.2实现上传图片的控制器方法
2016/04/28 PHP
PHP编程计算文件或数组中单词出现频率的方法
2017/05/22 PHP
PHP实现动态创建XML文档的方法
2018/03/30 PHP
Extjs中使用extend(js继承) 的代码
2012/03/15 Javascript
100个不能错过的实用JS自定义函数
2014/03/05 Javascript
js统计录入文本框中字符的个数并加以限制不超过多少
2014/05/23 Javascript
jQuery中odd选择器的定义和用法
2014/12/23 Javascript
JavaScript通过字符串调用函数的实现方法
2015/03/18 Javascript
浅谈$(document)和$(window)的区别
2015/07/15 Javascript
javascript计时器编写过程与实现方法
2016/02/29 Javascript
关于RequireJS的简单介绍即使用方法
2016/10/20 Javascript
vue.js实现仿原生ios时间选择组件实例代码
2016/12/21 Javascript
js实现的在线调色板功能完整实例
2016/12/21 Javascript
javascript 中设置window.location.href跳转无效问题解决办法
2017/02/09 Javascript
JavaScript中splice与slice的区别
2017/05/09 Javascript
vue中实现滚动加载更多的示例
2017/11/08 Javascript
Vue数据监听方法watch的使用
2018/03/28 Javascript
bootstrap动态调用select下拉框的实例代码
2018/08/09 Javascript
vue项目上传Github预览的实现示例
2018/11/06 Javascript
浅谈vue-router路由切换 组件重用挖下的坑
2019/11/01 Javascript
Python 出现错误TypeError: ‘NoneType’ object is not iterable解决办法
2017/01/12 Python
python实现日常记账本小程序
2018/03/10 Python
Python实现扣除个人税后的工资计算器示例
2018/03/26 Python
Python 实现删除某路径下文件及文件夹的实例讲解
2018/04/24 Python
python 编码规范整理
2018/05/05 Python
实例介绍Python中整型
2019/02/11 Python
PyCharm2019.3永久激活破解详细图文教程,亲测可用(不定期更新)
2020/10/29 Python
在终端启动Python时报错的解决方案
2020/11/20 Python
学校招生宣传广告词
2014/03/19 职场文书
公益广告标语
2014/06/19 职场文书
2015年小学中秋节活动总结
2015/03/23 职场文书