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 (2)
Oct 31 Python
Python下的常用下载安装工具pip的安装方法
Nov 13 Python
PyQt 线程类 QThread使用详解
Jul 16 Python
python+matplotlib绘制3D条形图实例代码
Jan 17 Python
Python中一般处理中文的几种方法
Mar 06 Python
python多环境切换及pyenv使用过程详解
Sep 27 Python
Python 类的私有属性和私有方法实例分析
Sep 29 Python
python tornado使用流生成图片的例子
Nov 18 Python
Python语言异常处理测试过程解析
Jan 08 Python
Python requests模块基础使用方法实例及高级应用(自动登陆,抓取网页源码)实例详解
Feb 14 Python
django 实现简单的插入视频
Apr 07 Python
Selenium 安装和简单使用的实现
Dec 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
python regex库实例用法总结
Jan 03 #Python
You might like
百事可乐也出咖啡了 双倍咖啡因双倍快乐
2021/03/03 咖啡文化
用PHP制作的意见反馈表源码
2007/03/11 PHP
PHP图片处理之图片背景、画布操作
2014/11/19 PHP
thinkphp表单上传文件并将文件路径保存到数据库中
2016/07/28 PHP
PHP  Yii清理缓存的实现方法
2016/11/10 PHP
yii2.0整合阿里云oss的示例代码
2017/09/19 PHP
Prototype最新版(1.5 rc2)使用指南(1)
2007/01/10 Javascript
用js自动判断浏览器分辨率的代码
2007/01/28 Javascript
通过js获取div的background-image属性
2013/10/15 Javascript
js拖动div 当鼠标移动时整个div也相应的移动
2013/11/21 Javascript
javascript实现文本域写入字符时限定字数
2014/02/12 Javascript
浅谈angular.js中实现双向绑定的方法$watch $digest $apply
2015/10/14 Javascript
深入理解jquery中extend的实现
2016/12/22 Javascript
jQuery插件jquery.kxbdmarquee.js实现无缝滚动效果
2017/02/15 Javascript
详解解决使用axios发送json后台接收不到的问题
2018/06/27 Javascript
vue-router传参用法详解
2019/01/19 Javascript
js核心基础之闭包的应用实例分析
2019/05/11 Javascript
vue 父组件通过v-model接收子组件的值的代码
2019/10/27 Javascript
[14:24]Optic Gaming vs PSG LGD BO3
2018/06/07 DOTA
浅析python 中__name__ = '__main__' 的作用
2014/07/05 Python
python中将字典转换成其json字符串
2014/07/16 Python
在Python的Bottle框架中使用微信API的示例
2015/04/23 Python
浅谈Python数据类型之间的转换
2016/06/08 Python
Python获取对象属性的几种方式小结
2020/03/12 Python
HTML5自定义属性的问题分析
2019/08/16 HTML / CSS
新西兰第一的行李箱网站:luggage.co.nz
2019/07/22 全球购物
乌克兰品牌化妆品和香水在线商店:Bomond
2020/01/14 全球购物
将"引用"作为函数参数有哪些特点
2013/04/05 面试题
党员公开承诺书和承诺事项
2014/03/25 职场文书
出生公证委托书
2014/04/03 职场文书
公司离职证明标准格式
2014/11/18 职场文书
庆六一开幕词
2015/01/29 职场文书
资产移交协议书
2016/03/24 职场文书
2019求职信:应届生求职信范文
2019/04/24 职场文书
不要在HTML中滥用div
2021/05/08 HTML / CSS
使用CSS实现音波加载效果
2023/05/07 HTML / CSS