python3列表删除大量重复元素remove()方法的问题详解


Posted in Python onJanuary 04, 2021

前言

删除列表中的元素十分简单,有很多方法。使用最多的是remove方法,remove() 方法从集合中删除指定的元素。此方法与discard()方法不同,因为如果指定的项目不存在,remove() 方法将引发错误,而discard()方法不会。但是今天刚发现一个问题,remove在删除列表中重复的元素时,有时会漏掉,只删除了部分重复元素。

下面举一个例子:

删除num1列表中的0元素,思路就是遍历列表,然后删除元素。

期望输出:nums1 = [1, 2, 3]

实际输出:nums1 = [1, 2, 3, 0]

经过搜索后发现,出现以上问题的原因在于,列表的内存自动管理功能,在删除列表中的元素时,python会自动对列表内存进行收缩,并移动列表中的元素以保证元素之间没有间隙,所以使用“循环+remove()方法”来删除列表中某一重复元素时,如果存在相邻的该元素,在删除前面一个元素后,后一个元素会被移动到刚被删除的这个元素的位置,这样这个元素就“躲过了删除”

#删除num1列表中的0
nums1 = [1, 2, 3, 0, 0, 0]
  for j in nums1:
  if j == 0:
   nums1.remove(j)

解决办法:

对于以上问题,解决思路是统计列表中重复的元素,若重复元素的个数大于0,则进行remove。

nums1 = [1, 2, 3, 0, 0, 0] 
 while nums1.count(0) > 0:
  for j in nums1:
   if j == 0:
   nums1.remove(j)

参考文章:https://3water.com/article/203398.htm

总结

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

Python 相关文章推荐
Python 深入理解yield
Sep 06 Python
Python挑选文件夹里宽大于300图片的方法
Mar 05 Python
介绍Python的Urllib库的一些高级用法
Apr 30 Python
Python实现SSH远程登陆,并执行命令的方法(分享)
May 08 Python
Python实现的递归神经网络简单示例
Aug 11 Python
机器学习经典算法-logistic回归代码详解
Dec 22 Python
Python中生成器和迭代器的区别详解
Feb 10 Python
解决pandas .to_excel不覆盖已有sheet的问题
Dec 10 Python
利用python生成照片墙的示例代码
Apr 09 Python
python获取时间戳的实现示例(10位和13位)
Sep 23 Python
Python机器学习之逻辑回归
May 11 Python
教你用python控制安卓手机
May 13 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
python regex库实例用法总结
Jan 03 #Python
You might like
mysql_fetch_assoc和mysql_fetch_row的功能加起来就是mysql_fetch_array
2007/01/15 PHP
php公用函数列表[正则]
2007/02/22 PHP
php简单防盗链实现方法
2015/07/29 PHP
PHP框架Laravel插件Pagination实现自定义分页
2020/04/22 PHP
自制PHP框架之模型与数据库
2017/05/07 PHP
PHP实现微信图片上传到服务器的方法示例
2017/06/29 PHP
Yii2.0 RESTful API 基础配置教程详解
2018/12/26 PHP
实例分析10个PHP常见安全问题
2019/07/09 PHP
javascript 折半查找字符在数组中的位置(有序列表)
2010/12/09 Javascript
jQuery 源码分析笔记(2) 变量列表
2011/05/28 Javascript
JavaScript 判断浏览器是否支持SVG的代码
2013/03/21 Javascript
当json键为数字时的取值方法解析
2013/11/15 Javascript
从零学JSON之JSON数据结构
2014/05/19 Javascript
常用的jQuery前端技巧收集
2014/12/24 Javascript
javascript+HTML5 Canvas绘制转盘抽奖
2020/05/16 Javascript
AngularJS中的API(接口)简单实现
2016/07/28 Javascript
jquery中用jsonp实现搜索框功能
2016/10/18 Javascript
windows 下安装nodejs 环境变量设置
2017/02/02 NodeJs
详解在vue-test-utils中mock全局对象
2018/11/07 Javascript
js全屏事件fullscreenchange 实现全屏、退出全屏操作
2019/09/17 Javascript
Vue3.0的优化总结
2020/10/16 Javascript
Python 面向对象 成员的访问约束
2008/12/23 Python
python抓取网页中链接的静态图片
2018/01/29 Python
Python树莓派学习笔记之UDP传输视频帧操作详解
2019/11/15 Python
IE支持HTML5的解决方法
2009/10/20 HTML / CSS
浅析HTML5中的download属性使用
2019/03/13 HTML / CSS
面试求职的个人自我评价
2013/11/16 职场文书
小学领导班子对照材料
2014/08/23 职场文书
小学生优秀评语
2014/12/29 职场文书
水电工岗位职责
2015/02/14 职场文书
信贷客户经理岗位职责
2015/04/09 职场文书
欠款纠纷起诉状
2015/05/19 职场文书
python 自动刷新网页的两种方法
2021/04/20 Python
JavaScript实现外溢动态爱心的效果的示例代码
2022/03/21 Javascript
vmware虚拟机打不开vmx文件怎么办 ?vmware虚拟机vmx文件打开方法
2022/04/08 数码科技
oracle delete误删除表数据后如何恢复
2022/06/28 Oracle