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模块学习 filecmp 文件比较
Aug 27 Python
Python(Tornado)模拟登录小米抢手机
Nov 12 Python
Python中的类学习笔记
Sep 23 Python
Python3使用requests发闪存的方法
May 11 Python
python检测空间储存剩余大小和指定文件夹内存占用的实例
Jun 11 Python
python 动态生成变量名以及动态获取变量的变量名方法
Jan 20 Python
计算机二级python学习教程(3) python语言基本数据类型
May 16 Python
python 读写excel文件操作示例【附源码下载】
Jun 19 Python
python3使用腾讯企业邮箱发送邮件的实例
Jun 28 Python
详解python实现数据归一化处理的方式:(0,1)标准化
Jul 17 Python
解决Pytorch自定义层出现多Variable共享内存错误问题
Jun 28 Python
Python 创建TCP服务器的方法
Jul 28 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基于文件存储实现缓存的方法
2015/07/20 PHP
中高级PHP程序员应该掌握哪些技术?
2016/09/23 PHP
thinkphp 5框架实现登陆,登出及session登陆状态检测功能示例
2019/10/10 PHP
PHP实现倒计时功能
2020/11/16 PHP
js 深拷贝函数
2008/12/04 Javascript
一样的table?不一样的table(可编辑状态table)
2012/09/19 Javascript
3分钟写出来的Jquery版checkbox全选反选功能
2013/10/23 Javascript
javascript基本算法汇总
2016/03/09 Javascript
Kindeditor在线文本编辑器如何过滤HTML
2016/04/14 Javascript
基于jquery实现的鼠标悬停提示案例
2016/12/11 Javascript
Websocket协议详解及简单实例代码
2016/12/12 Javascript
js代码实现下拉菜单【推荐】
2016/12/15 Javascript
JavaScript实现实时更新系统时间的实例代码
2017/04/04 Javascript
详解angular element()方法使用
2017/04/08 Javascript
Bootstrap 表单验证formValidation 实现远程验证功能
2017/05/17 Javascript
Vue.js对象转换实例
2017/06/07 Javascript
Underscore之Array_动力节点Java学院整理
2017/07/10 Javascript
基于js中document.cookie全面解析
2017/09/14 Javascript
Mongoose中document与object的区别示例详解
2017/09/18 Javascript
JS实现动态生成html table表格的方法分析
2018/07/11 Javascript
详解jQuery设置内容和属性
2019/04/11 jQuery
Weex开发之WEEX-EROS开发踩坑(小结)
2019/10/16 Javascript
webpack打包优化的几个方法总结
2020/02/10 Javascript
vite2.0+vue3移动端项目实战详解
2021/03/03 Vue.js
Python2.x版本中maketrans()方法的使用介绍
2015/05/19 Python
Pycharm激活码激活两种快速方式(附最新激活码和插件)
2020/03/12 Python
解析Python 偏函数用法全方位实现
2020/06/26 Python
如何使用python记录室友的抖音在线时间
2020/06/29 Python
大学四年职业生涯规划书范文
2014/01/02 职场文书
打架检讨书50字
2014/01/11 职场文书
爱国卫生月活动总结范文
2014/04/25 职场文书
八一建军节演讲稿
2014/09/10 职场文书
检讨书范文
2015/01/27 职场文书
幼儿园大班教师个人总结
2015/02/05 职场文书
高考诚信考试承诺书
2015/04/29 职场文书
类和原型的设计模式之复制与委托差异
2022/07/07 Javascript