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中super关键字用法实例分析
May 28 Python
Python 专题五 列表基础知识(二维list排序、获取下标和处理txt文本实例)
Mar 20 Python
从CentOS安装完成到生成词云python的实例
Dec 01 Python
对python字典元素的添加与修改方法详解
Jul 06 Python
Python爬虫小技巧之伪造随机的User-Agent
Sep 13 Python
python引用(import)某个模块提示没找到对应模块的解决方法
Jan 19 Python
Python hexstring-list-str之间的转换方法
Jun 12 Python
python输出决策树图形的例子
Aug 09 Python
在pycharm中为项目导入anacodna环境的操作方法
Feb 12 Python
使用ITK-SNAP进行抠图操作并保存mask的实例
Jul 01 Python
解决redis与Python交互取出来的是bytes类型的问题
Jul 16 Python
Python实现Kerberos用户的增删改查操作
Dec 14 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
Zend 输出产生XML解析错误
2009/03/03 PHP
PHP中防止SQL注入攻击和XSS攻击的两个简单方法
2010/04/15 PHP
在Windows下编译适用于PHP 5.2.12及5.2.13的eAccelerator.dll(附下载)
2010/05/04 PHP
php 面向对象的一个例子
2011/04/12 PHP
PHP内存缓存Memcached类实例
2014/12/08 PHP
php和html的区别点详细总结
2019/09/24 PHP
Google Map Api和GOOGLE Search Api整合实现代码
2009/07/18 Javascript
为javascript添加String.Format方法
2020/08/11 Javascript
有关DOM元素与事件的3个谜题
2010/11/11 Javascript
本地图片预览(支持IE6/IE7/IE8/Firefox3)经验总结
2013/03/25 Javascript
JS实现带提示的星级评分效果完整实例
2015/10/30 Javascript
jQuery实现图片预加载效果
2015/11/27 Javascript
剖析Node.js异步编程中的回调与代码设计模式
2016/02/16 Javascript
js实现无缝循环滚动
2020/06/23 Javascript
图文详解Javascript中的上下文和作用域
2017/02/15 Javascript
利用NPM淘宝的node.js镜像加速nvm
2017/03/27 Javascript
jQury Ajax使用Token验证身份实例代码
2017/09/22 Javascript
小程序视频列表中视频的播放与停止的示例代码
2018/07/20 Javascript
解决ant design vue中树形控件defaultExpandAll设置无效的问题
2020/10/26 Javascript
vue中watch的用法汇总
2020/12/28 Vue.js
[02:33]DOTA2亚洲邀请赛趣味视频之吐真话筒
2018/03/31 DOTA
[58:25]VP vs RNG 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/17 DOTA
python开发之基于thread线程搜索本地文件的方法
2015/11/11 Python
Python随机生成数据后插入到PostgreSQL
2016/07/28 Python
详解tensorflow实现迁移学习实例
2018/02/10 Python
Python使用到第三方库PyMuPDF图片与pdf相互转换
2019/05/03 Python
浅谈python锁与死锁问题
2020/08/14 Python
纯CSS实现的大小渐变、渐远效果
2014/04/15 HTML / CSS
CSS3 实现侧边栏展开收起动画
2014/12/22 HTML / CSS
HTML5通用接口详解
2016/06/12 HTML / CSS
农田水利实习自我鉴定
2013/09/19 职场文书
医药工作岗位求职信分享
2013/12/31 职场文书
年终晚会活动方案
2014/08/21 职场文书
租赁协议书
2015/01/27 职场文书
2015年董事长秘书工作总结
2015/07/23 职场文书
村官2015年度工作总结
2015/10/14 职场文书