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使用saltstack生成服务器资产清单
Mar 01 Python
编写Python小程序来统计测试脚本的关键字
Mar 12 Python
利用python发送和接收邮件
Sep 27 Python
Python实现PS滤镜特效之扇形变换效果示例
Jan 26 Python
Python不使用int()函数把字符串转换为数字的方法
Jul 09 Python
Python设计模式之备忘录模式原理与用法详解
Jan 15 Python
详解Python字典的操作
Mar 04 Python
深入学习python多线程与GIL
Aug 26 Python
Eclipse配置python默认头过程图解
Apr 26 Python
python代码区分大小写吗
Jun 17 Python
python3代码输出嵌套式对象实例详解
Dec 03 Python
用python开发一款操作MySQL的小工具
May 12 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
smarty中post用法实例
2014/11/28 PHP
py文件转exe时包含paramiko模块出错解决方法
2016/08/12 PHP
PHP中的日期时间处理利器实例(Carbon)
2017/06/09 PHP
javascript中巧用“闭包”实现程序的暂停执行功能
2007/04/04 Javascript
jquery pagination插件实现无刷新分页代码
2009/10/13 Javascript
jQuery 对Select的操作备忘记录
2011/07/04 Javascript
js控制表单奇偶行样式的简单方法
2013/07/31 Javascript
返回页面顶部top按钮通过锚点实现(自写)
2013/08/30 Javascript
js 3种归并操作的实例代码
2013/10/30 Javascript
深入理解javascript中的立即执行函数(function(){…})()
2014/06/12 Javascript
JQuery简单实现锚点链接的平滑滚动
2015/05/03 Javascript
javascript控制台详解
2015/06/25 Javascript
超赞的jQuery图片滑块动画特效代码汇总
2016/01/25 Javascript
jquery-mobile表单的创建方法详解
2016/11/23 Javascript
详解基于vue-router的动态权限控制实现方案
2017/09/28 Javascript
vue 注册组件的使用详解
2018/05/05 Javascript
JS实现数组去重及数组内对象去重功能示例
2019/02/02 Javascript
vue响应式更新机制及不使用框架实现简单的数据双向绑定问题
2019/06/27 Javascript
JavaScript内置对象之Array的使用小结
2020/05/12 Javascript
Python实现动态加载模块、类、函数的方法分析
2017/07/18 Python
浅析Python中的赋值和深浅拷贝
2017/08/15 Python
Python实现GUI学生信息管理系统
2020/04/05 Python
python使用tensorflow保存、加载和使用模型的方法
2018/01/31 Python
django 自定义过滤器的实现
2019/02/26 Python
浅析python 定时拆分备份 nginx 日志的方法
2020/04/27 Python
CSS伪类与CSS伪元素的区别及由来具体说明
2012/12/07 HTML / CSS
HTML5本地存储之Web Storage应用介绍
2013/01/06 HTML / CSS
阿联酋航空丹麦官方网站:Emirates DK
2019/08/25 全球购物
意大利单身交友网站:Meetic
2020/07/12 全球购物
strstr()的简单实现
2013/09/26 面试题
材料成型专业个人求职信范文
2013/09/25 职场文书
考核工作实施方案
2014/03/30 职场文书
债务纠纷委托书
2014/08/30 职场文书
导游词之杭州西湖
2019/09/19 职场文书
【js设计模式】SOLID五大设计原则
2022/03/24 Javascript
在NumPy中深拷贝和浅拷贝相关操作的定义和背后的原理
2022/04/14 Python