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中的pprint折腾记
Jan 21 Python
浅析Python的Django框架中的Memcached
Jul 23 Python
Python 加密的实例详解
Oct 09 Python
python并发编程之线程实例解析
Dec 27 Python
Python获取二维矩阵每列最大值的方法
Apr 03 Python
Python爬虫 bilibili视频弹幕提取过程详解
Jul 31 Python
Django ORM 自定义 char 类型字段解析
Aug 09 Python
基于python plotly交互式图表大全
Dec 07 Python
解决pycharm最左侧Tool Buttons显示不全的问题
Dec 17 Python
Python设计密码强度校验程序
Jul 30 Python
如何在Python3中使用telnetlib模块连接网络设备
Sep 21 Python
pygame面向对象的飞行小鸟实现(Flappy bird)
Apr 01 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
用PHP实现递归循环每一个目录
2010/08/08 PHP
解决php接收shell返回的结果中文乱码问题
2014/01/23 PHP
详谈PHP中public,private,protected,abstract等关键字的用法
2017/12/31 PHP
ThinkPHP5.0框架控制器继承基类和自定义类示例
2018/05/25 PHP
Jquery练习之表单验证实现代码
2010/12/14 Javascript
使用js显示当前时间示例
2014/03/02 Javascript
javascript避免数字计算精度误差的方法详解
2014/03/05 Javascript
node.js中的fs.link方法使用说明
2014/12/15 Javascript
jQuery判断多个input file 都不能为空的例子
2015/06/23 Javascript
理解JavaScript中worker事件api
2015/12/25 Javascript
Angular.JS内置服务$http对数据库的增删改使用教程
2017/05/07 Javascript
BootStrap daterangepicker 双日历控件
2017/06/02 Javascript
js自定义trim函数实现删除两端空格功能
2018/02/09 Javascript
vuex实现登录状态的存储,未登录状态不允许浏览的方法
2018/03/09 Javascript
JavaScript常见继承模式实例小结
2019/01/11 Javascript
微信小程序实现圆形进度条动画
2020/11/18 Javascript
javascript面向对象三大特征之封装实例详解
2019/07/24 Javascript
Layui Form 自定义验证的实例代码
2019/09/14 Javascript
Nodejs 数组的队列以及forEach的应用详解
2021/02/25 NodeJs
[03:48]显微镜下的DOTA2第四期——TP动作
2014/06/20 DOTA
python连接MySQL、MongoDB、Redis、memcache等数据库的方法
2013/11/15 Python
Python列表(list)常用操作方法小结
2015/02/02 Python
Python Web框架Tornado运行和部署
2020/10/19 Python
django富文本编辑器的实现示例
2019/04/10 Python
Python爬虫运用正则表达式的方法和优缺点
2019/08/25 Python
Python中文分词库jieba,pkusegwg性能准确度比较
2020/02/11 Python
Farfetch巴西官网:奢侈品牌时尚购物平台
2020/10/19 全球购物
计算机毕业大学生求职信
2014/06/26 职场文书
甘南现象心得体会
2014/09/11 职场文书
中学生综合素质自我评价
2015/03/06 职场文书
离职信范本
2015/06/23 职场文书
董事长助理工作总结2015
2015/07/23 职场文书
关于vue中如何监听数组变化
2021/04/28 Vue.js
Golang全局变量加锁的问题解决
2021/05/08 Golang
Js类的构建与继承案例详解
2021/09/15 Javascript
MySQL分区表实现按月份归类
2021/11/01 MySQL