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 不关闭控制台的实现方法
Oct 23 Python
python实现比较两段文本不同之处的方法
May 30 Python
Python中的一些陷阱与技巧小结
Jul 10 Python
浅谈python中的__init__、__new__和__call__方法
Jul 18 Python
python实现壁纸批量下载代码实例
Jan 25 Python
用python与文件进行交互的方法
Mar 01 Python
python中字符串比较使用is、==和cmp()总结
Mar 18 Python
零基础使用Python读写处理Excel表格的方法
May 02 Python
python画图--输出指定像素点的颜色值方法
Jul 03 Python
使用Python代码实现Linux中的ls遍历目录命令的实例代码
Sep 07 Python
python 实现从高分辨图像上抠取图像块
Jan 02 Python
用Python提取PDF表格的方法
Apr 11 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
声音就能俘获人心,蕾姆,是哪个漂亮小姐姐配音呢?
2020/03/03 日漫
实现 win2003 下 mysql 数据库每天自动备份
2006/12/06 PHP
php 5.3.5安装memcache注意事项小结
2011/04/12 PHP
DISCUZ在win2003环境下 Unable to access ./include/common.inc.php in... 的问题终极解决方案
2011/11/21 PHP
php源码分析之DZX1.5随机数函数random用法
2015/06/17 PHP
CI框架AR数据库操作常用函数总结
2016/11/21 PHP
父窗口获取弹出子窗口文本框的值
2006/06/27 Javascript
isArray()函数(JavaScript中对象类型判断的几种方法)
2009/11/26 Javascript
struts2+jquery+json实现异步加载数据(自写)
2013/06/24 Javascript
jquery跟js初始化加载的多种方法及区别介绍
2014/04/02 Javascript
详解AngularJS中自定义指令的使用
2015/06/17 Javascript
jQuery.prop() 使用详解
2015/07/19 Javascript
jQuery设置Cookie及删除Cookie实例分析
2016/04/15 Javascript
AngularJS延迟加载html template
2016/07/27 Javascript
Bootstrap 3 进度条的实现
2017/02/22 Javascript
uploader秒传图片到服务器完整代码
2017/04/22 Javascript
一个有意思的鼠标点击文字特效jquery代码
2017/09/23 jQuery
vue项目部署到Apache服务器中遇到的问题解决
2018/08/24 Javascript
解决vue项目运行npm run serve报错的问题
2020/10/26 Javascript
python文件比较示例分享
2014/01/10 Python
Python采用socket模拟TCP通讯的实现方法
2014/11/19 Python
关于python pyqt5安装失败问题的解决方法
2017/08/08 Python
python提取图像的名字*.jpg到txt文本的方法
2018/05/10 Python
详解Python下Flask-ApScheduler快速指南
2018/11/04 Python
python求绝对值的三种方法小结
2019/12/04 Python
python环境下安装opencv库的方法
2020/03/05 Python
Opencv图像处理:如何判断图片里某个颜色值占的比例
2020/06/03 Python
详解css3 Transition属性(平滑过渡菜单栏案例)
2017/09/05 HTML / CSS
Web前端页面跳转并取到值
2017/04/24 HTML / CSS
水果花束:Fruit Bouquets
2017/12/20 全球购物
成都思必达公司C#程序员招聘面试题
2013/06/26 面试题
会计毕业生自荐信
2013/11/21 职场文书
祖国在我心中演讲稿450字
2014/09/05 职场文书
2014党员学习《反腐倡廉警示教育读本》思想汇报
2014/09/13 职场文书
上级领导检查欢迎词
2015/09/30 职场文书
Vue3如何理解ref toRef和toRefs的区别
2022/02/18 Vue.js