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模块restful使用方法实例
Dec 10 Python
Python urlopen()函数 示例分享
Jun 12 Python
python 的列表遍历删除实现代码
Apr 12 Python
python爬虫实战之爬取京东商城实例教程
Apr 24 Python
Python表示矩阵的方法分析
May 26 Python
python实现聚类算法原理
Feb 12 Python
Python Websocket服务端通信的使用示例
Feb 25 Python
解决pymysql cursor.fetchall() 获取不到数据的问题
May 15 Python
MATLAB数学建模之画图汇总
Jul 16 Python
python实现暗通道去雾算法的示例
Sep 27 Python
Python之字符串的遍历的4种方式
Dec 08 Python
在pyCharm中下载第三方库的方法
Apr 18 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
Windows IIS PHP 5.2 安装与配置方法
2009/06/08 PHP
PHP获取当前页面URL函数实例
2014/10/22 PHP
详解PHP的Yii框架中的Controller控制器
2016/03/29 PHP
ThinkPHP 3.2.3实现页面静态化功能的方法详解
2017/08/03 PHP
小程序微信退款功能实现方法详解【基于thinkPHP】
2019/05/05 PHP
Laravel框架创建路由的方法详解
2019/09/04 PHP
关于jquery动态增减控件的一些想法和小插件
2010/08/01 Javascript
jquery $.each 和for怎么跳出循环终止本次循环
2013/09/27 Javascript
js简单实现交换Li的值
2014/05/22 Javascript
AngularJS中的过滤器使用详解
2015/06/16 Javascript
Bootstrap框架动态生成Web页面文章内目录的方法
2016/05/12 Javascript
详解vue组件化开发-vuex状态管理库
2017/04/10 Javascript
使用Ajax和Jquery配合数据库实现下拉框的二级联动的示例
2018/01/25 jQuery
vue集成chart.js的实现方法
2019/08/20 Javascript
JavaScript如何处理移动端拍摄图片旋转问题
2019/11/16 Javascript
Vue项目vscode 安装eslint插件的方法(代码自动修复)
2020/04/15 Javascript
原生JavaScript创建不可变对象的方法简单示例
2020/05/07 Javascript
JS实现躲避粒子小游戏
2020/06/18 Javascript
跟老齐学Python之关于循环的小伎俩
2014/10/02 Python
python中is与双等于号“==”的区别示例详解
2017/11/21 Python
python创建列表和向列表添加元素的实现方法
2017/12/25 Python
Linux下python3.6.1环境配置教程
2018/09/26 Python
Python逐行读取文件内容的方法总结
2020/02/14 Python
Pycharm配置PyQt5环境的教程
2020/04/02 Python
jupyter notebook参数化运行python方式
2020/04/10 Python
Python类及获取对象属性方法解析
2020/06/15 Python
HTML5实现预览本地图片
2016/02/17 HTML / CSS
美国卡车、吉普车和SUV零件网站:4 Wheel Parts
2016/11/24 全球购物
美国名牌香水折扣网站:Hottperfume
2021/02/10 全球购物
幼儿教师思想汇报
2014/01/10 职场文书
讲解员培训方案
2014/05/04 职场文书
莫言获奖感言(全文)
2015/07/31 职场文书
2016年八一建军节活动总结
2016/04/05 职场文书
七年级上册生物的课件
2019/08/07 职场文书
PyCharm 安装与使用配置教程(windows,mac通用)
2021/05/12 Python
SQL实现LeetCode(196.删除重复邮箱)
2021/08/07 MySQL