python中remove函数的踩坑记录
在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函数坑内容请搜索好吧啦网以前的文章或继续浏览下面的相关文章希望大家以后多多支持好吧啦网!
相关文章:
1. Python使用pycharm导入pymysql教程2. Python如何把十进制数转换成ip地址3. python为Django项目上的每个应用程序创建不同的自定义404页面(最佳答案)4. Python虚拟环境virtualenv创建及使用过程图解5. python点云地面点滤波(Progressive Morphological Filter)算法介绍(PCL库)6. Python定时从Mysql提取数据存入Redis的实现7. python为什么要安装到c盘8. python全栈开发语法总结9. Python使用Numpy模块读取文件并绘制图片10. python使用pywinauto驱动微信客户端实现公众号爬虫

网公网安备