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在windows命令行下输出彩色文字的方法
Mar 19 Python
Python处理XML格式数据的方法详解
Mar 21 Python
python实现二分查找算法
Sep 21 Python
浅谈pandas中Dataframe的查询方法([], loc, iloc, at, iat, ix)
Apr 10 Python
Python3.4 splinter(模拟填写表单)使用方法
Oct 13 Python
python微信好友数据分析详解
Nov 19 Python
简单了解python关系(比较)运算符
Jul 08 Python
python函数装饰器之带参数的函数和带参数的装饰器用法示例
Nov 06 Python
Python实现随机生成任意数量车牌号
Jan 21 Python
Python2.6版本pip安装步骤解析
Aug 17 Python
套娃式文件夹如何通过Python批量处理
Aug 23 Python
python制作图形界面的2048游戏, 基于tkinter
Apr 06 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 无限级 SelectTree 类
2009/05/19 PHP
php强制文件下载而非在浏览器打开的自定义函数分享
2014/05/08 PHP
PHP如何实现Unicode和Utf-8编码相互转换
2015/07/29 PHP
PHP5.6.8连接SQL Server 2008 R2数据库常用技巧分析总结
2019/05/06 PHP
Laravel 中使用简单的方法跟踪用户是否在线(推荐)
2019/10/30 PHP
TP5框架实现一次选择多张图片并预览的方法示例
2020/04/04 PHP
JavaScript中判断数据类型的方法总结
2016/05/24 Javascript
浅谈js中StringBuffer类的实现方法及使用
2016/09/02 Javascript
Angular.JS学习之依赖注入$injector详析
2016/10/20 Javascript
React组件的三种写法总结
2017/01/12 Javascript
Vue.js常用指令之循环使用v-for指令教程
2017/06/27 Javascript
react-native DatePicker日期选择组件的实现代码
2017/09/12 Javascript
elemetUi 组件--el-upload实现上传Excel文件的实例
2017/10/27 Javascript
javascript获取图片的top N主色值方法详解
2018/01/26 Javascript
vue中选项卡点击切换且能滑动切换功能的实现代码
2018/11/25 Javascript
javascript验证form表单数据的案例详解
2019/03/25 Javascript
vue实现拖拽的简单案例 不超出可视区域
2019/07/25 Javascript
如何使用50行javaScript代码实现简单版的call,apply,bind
2019/08/14 Javascript
对layer弹出框中icon数字参数的说明介绍
2019/09/04 Javascript
vue中实现点击按钮滚动到页面对应位置的方法(使用c3平滑属性实现)
2019/12/29 Javascript
vue动态设置页面title的方法实例
2020/08/23 Javascript
从零学python系列之新版本导入httplib模块报ImportError解决方案
2014/05/23 Python
Python编写检测数据库SA用户的方法
2014/07/11 Python
Python中的引用和拷贝浅析
2014/11/22 Python
使用turtle绘制五角星、分形树
2019/10/06 Python
Python Tornado之跨域请求与Options请求方式
2020/03/28 Python
python 安装库几种方法之cmd,anaconda,pycharm详解
2020/04/08 Python
CSS3新增布局之: flex详解
2020/06/18 HTML / CSS
Linux Interview Questions For software testers
2012/06/02 面试题
广播电视新闻学专业应届生求职信
2013/10/08 职场文书
后备干部培训方案
2014/05/22 职场文书
活动总结格式
2014/08/30 职场文书
八月一日观后感
2015/06/10 职场文书
2016社区平安家庭事迹材料
2016/02/26 职场文书
vue ref如何获取子组件属性值
2022/03/31 Vue.js
HTML中link标签属性的具体用法
2023/05/07 HTML / CSS