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+tkinter使用40行代码实现计算器功能
Jan 30 Python
详解将Django部署到Centos7全攻略
Sep 26 Python
对Python多线程读写文件加锁的实例详解
Jan 14 Python
python安装numpy和pandas的方法步骤
May 27 Python
Python利用matplotlib做图中图及次坐标轴的实例
Jul 08 Python
Django的性能优化实现解析
Jul 30 Python
python遍历文件目录、批量处理同类文件
Aug 31 Python
Python之关于类变量的两种赋值区别详解
Mar 12 Python
PyQT5 实现快捷键复制表格数据的方法示例
Jun 19 Python
Python应用自动化部署工具Fabric原理及使用解析
Nov 30 Python
python实现黄金分割法的示例代码
Apr 28 Python
Python jiaba库的使用详解
Nov 23 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正确配置mysql(apache环境)
2011/08/28 PHP
php读取图片内容并输出到浏览器的实现代码
2013/08/08 PHP
原生JS实现Ajax通过POST方式与PHP进行交互的方法示例
2018/05/12 PHP
基于JQuery 的消息提示框效果代码
2011/07/31 Javascript
IFrame跨域高度自适应实现代码
2012/08/16 Javascript
Ajax同步与异步传输的示例代码
2013/11/21 Javascript
Ajax清除浏览器js、css、图片缓存的方法
2015/08/06 Javascript
jquery中ajax处理跨域的三大方式
2016/01/05 Javascript
解决canvas画布使用fillRect()时高度出现双倍效果的问题
2017/08/03 Javascript
vue.js系列中的vue-fontawesome使用
2018/02/10 Javascript
Webpack中雪碧图插件使用详解
2018/05/25 Javascript
详解vue组件开发脚手架
2018/06/15 Javascript
详解angular部署到iis出现404解决方案
2018/08/14 Javascript
详解JSON和JSONP劫持以及解决方法
2019/03/08 Javascript
[45:25]OG vs EG 2019国际邀请赛淘汰赛 胜者组 BO3 第一场 8.22
2019/09/05 DOTA
在Python的Django框架中编写错误提示页面
2015/07/22 Python
python清除函数占用的内存方法
2018/06/25 Python
python实现决策树分类(2)
2018/08/30 Python
python程序变成软件的实操方法
2019/06/24 Python
Python+PyQt5实现灭霸响指功能
2020/05/25 Python
PyCharm 2020.1版安装破解注册码永久激活(激活到2089年)
2020/09/24 Python
canvas生成带二维码海报的踩坑记录
2019/09/11 HTML / CSS
html5实现滑块功能之type="range"属性
2020/02/18 HTML / CSS
德国领先的大尺码和超大尺码男装在线零售商:Bigtex
2019/06/22 全球购物
平民服装店创业计划书
2014/01/17 职场文书
2014信息技术专业毕业生自我评价
2014/01/17 职场文书
楼面部长岗位职责范本
2014/02/14 职场文书
2015年元旦文艺汇演主持词
2014/03/26 职场文书
学生喝酒检讨书500字
2014/11/02 职场文书
入党介绍人考察意见
2015/06/01 职场文书
一百条裙子读书笔记
2015/07/01 职场文书
2016年党员干部廉政承诺书
2016/03/24 职场文书
PyQt5结合QtDesigner实现文本框读写操作
2021/06/11 Python
python机器学习Github已达8.9Kstars模型解释器LIME
2021/11/23 Python
Linux中文件的基本属性介绍
2022/06/01 Servers
一次SQL查询优化原理分析(900W+数据从17s到300ms)
2022/06/10 SQL Server