python中remove函数的踩坑记录


Posted in Python onJanuary 04, 2021

摘要:

在python的使用过程中,难免会遇到要移除列表中对象的要求。这时可以使用remove函数。

对于python中的remove()函数,官方文档的解释是:Remove first occurrence of value.大意也就是移除列表中等于指定值的第一个匹配的元素。

语法

list.remove()

参数

obj 参数:从列表中删除的对象的索引

返回值

删除后不会返回值

常见用法:

a = [1,2,3,4],a.remove(1),然后a就是[2,3,4];对于a = [1,1,1,2],其结果也是[1,1,2],这是最基本的用法。

但是对于下面这个:

a = [1,2,3,4]
for i in a:
  a.remove(i)

# 结果
a = [2,4]

或者说

a = [1,1,1,1,1,2]
for i in a:
  a.remove(1)

 
#结果
a = [1,1,2]

是不是跟想象中的不一样,其主要原因如下(^表示当前迭代器位于列表中的位置):

   a = [ 1 , 2 , 3 , 4]

假设此时  ^

默认情况下只想第一个元素,然后执行a.remove(1),然后下标向后移动,列表因为删除了元素,后面的向前移动,如下:

   a = [ 2 , 3 , 4]

   此时       ^

此时执行a.remove(3),重复上面的移动

   a = [ 2 , 4]

   此时           ^

因为已经到了列表的边界,故结束遍历,并返回`a = [2,4]`。

解决办法:

# 一下为解决办法之一
d = dict(zip(range(len(a)), a))
[v for k, v in d.items() if v != value]

总结:

关于python列表的remove操作涉及了列表下标的移动以及列表中元素的移动,涉及了一些关于数组的知识。其核心问题就是前面所说的。

到此这篇关于python中remove函数的踩坑记录的文章就介绍到这了,更多相关python中remove函数坑内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
python使用PIL模块实现给图片打水印的方法
May 22 Python
Python enumerate索引迭代代码解析
Jan 19 Python
Python异常处理操作实例详解
Aug 28 Python
python的依赖管理的实现
May 14 Python
python字典改变value值方法总结
Jun 21 Python
python单线程下实现多个socket并发过程详解
Jul 27 Python
python 使用opencv 把视频分割成图片示例
Dec 12 Python
python 解决Fatal error in launcher:错误问题
May 21 Python
python实现每天自动签到领积分的示例代码
Aug 18 Python
python 线程的五个状态
Sep 22 Python
解决Python 写文件报错TypeError的问题
Oct 23 Python
Python jieba库分词模式实例用法
Jan 13 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
Python爬虫之Selenium库的使用方法
Jan 03 #Python
学会迭代器设计模式,帮你大幅提升python性能
Jan 03 #Python
You might like
PHP文件打开、关闭、写入的判断与执行代码
2011/05/24 PHP
基于在生产环境中使用php性能测试工具xhprof的详解
2013/06/03 PHP
PHP之生成GIF动画的实现方法
2013/06/07 PHP
PHP实现获取客户端IP并获取IP信息
2015/03/17 PHP
PHP遍历数组的方法汇总
2015/04/30 PHP
PHP实现统计代码行数小工具
2019/09/19 PHP
深入理解JavaScript系列(7) S.O.L.I.D五大原则之开闭原则OCP
2012/01/15 Javascript
单击复制文字兼容各浏览器的完美解决方案
2013/07/04 Javascript
jQuery中extend()和fn.extend()方法详解
2015/06/03 Javascript
举例讲解Node.js中的Writable对象
2015/07/29 Javascript
微信小程序 确认框的实现(附代码)
2019/07/23 Javascript
用js限制网页只在微信浏览器中打开(或者只能手机端访问)
2020/12/24 Javascript
小程序双头slider选择器的实现示例
2020/03/31 Javascript
小程序中使用css var变量(使js可以动态设置css样式属性)
2020/03/31 Javascript
[47:22]Mineski vs Winstrike 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
python爬虫入门教程之糗百图片爬虫代码分享
2014/09/02 Python
基于python的字节编译详解
2017/09/20 Python
高质量Python代码编写的5个优化技巧
2017/11/16 Python
Python中optparser库用法实例详解
2018/01/26 Python
python print输出延时,让其立刻输出的方法
2019/01/07 Python
使用Python自动化破解自定义字体混淆信息的方法实例
2019/02/13 Python
在Python中表示一个对象的方法
2019/06/25 Python
Python叠加两幅栅格图像的实现方法
2019/07/05 Python
如何通过python的fabric包完成代码上传部署
2019/07/29 Python
Flask框架单例模式实现方法详解
2019/07/31 Python
pygame用blit()实现动画效果的示例代码
2020/05/28 Python
matplotlib之多边形选区(PolygonSelector)的使用
2021/02/24 Python
CSS3教程(3):border-color网页边框色彩
2009/04/02 HTML / CSS
CSS3 绘制BMW logo实的现代码
2013/04/25 HTML / CSS
日本最大美瞳直送网:Morecontact(中文)
2019/04/03 全球购物
《音乐之都维也纳》教学反思
2014/04/16 职场文书
护士节演讲稿开场白
2014/08/25 职场文书
孔庙导游词
2015/02/04 职场文书
python 下划线的多种应用场景总结
2021/05/12 Python
js基础语法与maven项目配置教程案例
2021/07/15 Javascript
yyds什么意思?90后已经听不懂00后讲话了……
2022/02/03 杂记