Python列表元素删除和remove()方法详解


Posted in Python onJanuary 04, 2021

删除列表中元素的方法有三种:

1. del命令

使用del命令能够删除列表中指定位置上的元素,也可以删除整个列表。

2. pop( )方法

使用列表的pop()方法能够删除并返回列表指定位置(默认为最后一个位置)的元素。

3. remove方法

使用列表的remove()方法能够删除列表中首次出现的指定元素,如果列表中不存在该元素则抛出异常。有的时候可能需要删除列表中某一大量重复的数据,我们很容易就会想到列表的remove()方法,例如:

x=[1,2,1,2,1,2,1,2]
y=[1,1,2,1,2,1,2,1,1,1,2]
for i in x:
 if i==1:
  x.remove(i)
print("List_1=",x)
for i in y:
 if i==1:
  y.remove(i)
print("List_2=",y)

结果:

List_1= [2, 2, 2, 2]
 
List_2= [2, 2, 2, 1, 1, 2]

但是当我们在具体实现时很可能会遇到意想不到的错误,代码有的时候能够达到预期的删除所有重复元素的效果,有的时候只能删除部分重复元素,如上例所示。比较两个列表,发现,列表x中所有的1都是不相邻的,列表y中有的1是相邻的。出现以上问题的原因在于,列表的内存自动管理功能,在删除列表中的元素时,python会自动对列表内存进行收缩,并移动列表中的元素以保证元素之间没有间隙,所以使用“循环+remove()方法”来删除列表中某一重复元素时,如果存在相邻的该元素,在删除前面一个元素后,后一个元素会被移动到刚被删除的这个元素的位置,这样这个元素就“躲过了删除”

Python列表元素删除和remove()方法详解

对于以上问题代码可以做如下修改:

x=[1,2,1,2,1,2,1,2]
y=[1,1,2,1,2,1,2,1,1,1,2]
for i in x:
 if i==1:
  x.remove(i)
print("List_1=",x)
while y.count(1)>0://或者while 1 in y:
 for i in y:
  if i==1:
   y.remove(i)
print("List_2=",y)

输出结果:

List_1= [2, 2, 2, 2]
 
List_2= [2, 2, 2, 2]

总结

到此这篇关于Python列表元素删除和remove()方法详解的文章就介绍到这了,更多相关Python列表元素删除和remove()方法内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python判断变量是否已经定义的方法
Aug 18 Python
深入解析Python中的urllib2模块
Nov 13 Python
详解Python多线程
Nov 14 Python
在Python web中实现验证码图片代码分享
Nov 09 Python
快速入门python学习笔记
Dec 06 Python
PyQt5打开文件对话框QFileDialog实例代码
Feb 07 Python
Sanic框架路由用法实例分析
Jul 16 Python
Flask模拟实现CSRF攻击的方法
Jul 24 Python
python之当你发现QTimer不能用时的解决方法
Jun 21 Python
自定义django admin model表单提交的例子
Aug 23 Python
Python生成验证码、计算具体日期是一年中的第几天实例代码详解
Oct 16 Python
Python装饰器结合递归原理解析
Jul 02 Python
python3列表删除大量重复元素remove()方法的问题详解
Jan 04 #Python
关于python中remove的一些坑小结
Jan 04 #Python
python中remove函数的踩坑记录
Jan 04 #Python
python 日志模块logging的使用场景及示例
Jan 04 #Python
python 邮件检测工具mmpi的使用
Jan 04 #Python
Python3中的tuple函数知识点讲解
Jan 03 #Python
python中pivot()函数基础知识点
Jan 03 #Python
You might like
SONY ICF-SW7600的电路分析
2021/03/02 无线电
Apache设置虚拟WEB
2006/10/09 PHP
phpcms模块开发之swfupload的使用介绍
2013/04/28 PHP
深入php函数file_get_contents超时处理的方法详解
2013/06/03 PHP
PHP三种方式实现链式操作详解
2017/01/21 PHP
php实现连接access数据库并转txt写入的方法
2017/02/08 PHP
jquery keypress,keyup,onpropertychange键盘事件
2010/06/25 Javascript
在IE 浏览器中使用 jquery的fadeIn() 效果 英文字符字体加粗
2011/06/02 Javascript
jQuery插件-jRating评分插件源码分析及使用方法
2012/12/28 Javascript
让图片旋转任意角度及JQuery插件使用介绍
2013/03/20 Javascript
jQuery is()函数用法3例
2014/05/06 Javascript
node.js中的fs.realpathSync方法使用说明
2014/12/16 Javascript
浅谈jquery中delegate()与live()
2015/06/22 Javascript
jQuery多文件异步上传带进度条实例代码
2016/08/16 Javascript
vue 实现axios拦截、页面跳转和token 验证
2018/07/17 Javascript
vue组件表单数据回显验证及提交的实例代码
2018/08/30 Javascript
JavaScript中的一些实用小技巧总结
2019/04/07 Javascript
ES6知识点整理之对象解构赋值应用示例
2019/04/17 Javascript
python提取内容关键词的方法
2015/03/16 Python
pygame学习笔记(5):游戏精灵
2015/04/15 Python
django数据库migrate失败的解决方法解析
2018/02/08 Python
python针对excel的操作技巧
2018/03/13 Python
Python代码打开本地.mp4格式文件的方法
2019/01/03 Python
selenium+python自动化测试之多窗口切换
2019/01/23 Python
解决pytorch 交叉熵损失输出为负数的问题
2020/07/07 Python
python打包多类型文件的操作方法
2020/09/21 Python
Python3读写ini配置文件的示例
2020/11/06 Python
HTML5的结构和语义(2):结构
2008/10/17 HTML / CSS
Html5+JS实现手机摇一摇功能
2015/04/24 HTML / CSS
澳大利亚宠物食品和药物在线:Jumbo Pets
2018/03/24 全球购物
Ryderwear澳洲官网:澳大利亚高端健身训练装备品牌
2018/09/18 全球购物
澳大利亚手表品牌:Time IV Change
2018/10/06 全球购物
zooplus意大利:在线宠物商店
2019/08/07 全球购物
高中生的学习总结自我鉴定
2013/10/26 职场文书
夜大毕业生自我评价分享
2013/11/10 职场文书
银行工作检查书范文
2014/01/31 职场文书