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 随机生成中文验证码的实例代码
Mar 20 Python
python查找第k小元素代码分享
Dec 18 Python
python通过colorama模块在控制台输出彩色文字的方法
Mar 19 Python
Python实现按特定格式对文件进行读写的方法示例
Nov 30 Python
python 删除非空文件夹的实例
Apr 26 Python
浅析Python3中的对象垃圾收集机制
Jun 06 Python
Python企业编码生成系统总体系统设计概述
Jul 26 Python
Python树莓派学习笔记之UDP传输视频帧操作详解
Nov 15 Python
使用celery和Django处理异步任务的流程分析
Feb 19 Python
python生成13位或16位时间戳以及反向解析时间戳的实例
Mar 03 Python
matplotlib jupyter notebook 图像可视化 plt show操作
Apr 24 Python
无惧面试,带你搞懂python 装饰器
Aug 17 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
PHP 简单数组排序实现代码
2009/08/05 PHP
php5.3 废弃函数小结
2010/05/16 PHP
php中将指针移动到数据集初始位置的实现代码[mysql_data_seek]
2012/11/01 PHP
laravel5.5安装jwt-auth 生成token令牌的示例
2019/10/24 PHP
javascript读取RSS数据
2007/01/20 Javascript
ExtJS Window 最小化的一种方法
2009/11/18 Javascript
Javascript学习笔记6 prototype的提出
2010/01/11 Javascript
jQuery找出网页上最高元素的方法
2015/03/20 Javascript
Js实现自定义右键行为
2015/03/26 Javascript
JavaScript解八皇后问题的方法总结
2016/06/12 Javascript
微信小程序 地图map详解及简单实例
2017/01/10 Javascript
Vue2.0实现1.0的搜索过滤器功能实例代码
2017/03/20 Javascript
详解Vue.js 2.0 如何使用axios
2017/04/21 Javascript
Angular2 之 路由与导航详细介绍
2017/05/26 Javascript
webpack构建的详细流程探底
2018/01/08 Javascript
vue实现简单的MVVM框架
2018/08/05 Javascript
vue调试工具vue-devtools安装及使用方法
2018/11/07 Javascript
深入理解令牌认证机制(token)
2019/08/22 Javascript
Vue路由切换页面不更新问题解决方案
2020/07/10 Javascript
JS寄快递地址智能解析的实现代码
2020/07/16 Javascript
python自然语言编码转换模块codecs介绍
2015/04/08 Python
详细解读Python中的__init__()方法
2015/05/02 Python
python 实现删除文件或文件夹实例详解
2016/12/04 Python
Python爬虫实现网页信息抓取功能示例【URL与正则模块】
2017/05/18 Python
详解python之配置日志的几种方式
2017/05/22 Python
浅谈用VSCode写python的正确姿势
2017/12/16 Python
详解Python中的四种队列
2018/05/21 Python
Python面向对象思想与应用入门教程【类与对象】
2019/04/12 Python
Python实现PyPDF2处理PDF文件的方法示例
2019/09/25 Python
Python实现分数序列求和
2020/02/25 Python
Python 数据分析之逐块读取文本的实现
2020/12/14 Python
宝宝满月酒主持词和仪式流程
2014/03/27 职场文书
2015年宣传部工作总结范文
2015/03/31 职场文书
2015年餐厅服务员工作总结
2015/04/23 职场文书
运动会宣传语
2015/07/13 职场文书
为什么MySQL 删除表数据 磁盘空间还一直被占用
2021/10/16 MySQL