
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函数坑内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!
相关推荐
-
Python 使用os.remove删除文件夹时报错的解决方法
os.remove不能用来删除文件夹,否则拒绝访问. # -*- coding:utf-8 -*-import osif __name__ == "__main__": os.remove('D:\\test') 运行结果: 删除空目录: # -*- coding:utf-8 -*-import osif __name__ == "__main__": os.rmdir('D:\\test') 如果目录不为空会报错,如下: 删除目录(不论目录是否为空): # -*-
-
Python如何在循环内使用list.remove()
代码如下 dat=['1', '2', '3', '0', '0', '0'] for item in dat: if item == '0': dat.remove(item) print(dat) #按要求是把'0'都删掉的,输出结果是['1', '2', '3', '0'] ?? 首先,remove(x) 移除的是序列首次碰到的元素x 理解: 遍历列表,item每一次都会变化,可以想象有一个指针指向后一个元素,指针是递增的,从头元素到尾元素直至遍历完. 容易想到指针 0 --> 1 -->
-
在Python的列表中利用remove()方法删除元素的教程
remove()方法从列表中删除第一个obj. 语法 以下是remove()方法的语法: list.remove(obj) 参数 obj -- 这是可以从列表中移除该对象 返回值 此方法不返回任何值,但从列表中删除给定的对象 例子 下面的例子显示了remove()方法的使用 #!/usr/bin/python aList = [123, 'xyz', 'zara', 'abc', 'xyz']; aList.remove('xyz'); print "List : ", aList;
-
深入了解Python中pop和remove的使用方法
Python关于删除list中的某个元素,一般有两种方法,pop()和remove(). remove() 函数用于移除列表中某个值的第一个匹配项. remove()方法语法: list.remove(obj) pop() 函数用于移除列表中的一个元素(默认最后一个元素),并且返回该元素的值. pop()方法语法: list.pop(obj=list[-1]) 如果删除单个元素,使用基本没有什么问题,具体如下. 1.pop()方法,传递的是待删除元素的index: x = ['a', 'b',
-
Python列表删除元素del、pop()和remove()的区别小结
前言 在python列表的元素删除操作中, del, pop(), remove()很容易混淆, 下面对三个语句/方法作出解释 del语句 del语句可以删除任何位置处的列表元素, 若知道某元素在列表中的位置则可使用del语句. 例: >>> a = [3, 2, 2, 1] >>> del a[1] >>> a [3, 2, 1] pop()方法 pop()可删除任意位置的元素并将其返回, 只需在括号内指定要删除元素的索引即可, 当括号内为空时则删除
-
Python列表list内建函数用法实例分析【insert、remove、index、pop等】
本文实例讲述了Python列表list内建函数用法.分享给大家供大家参考,具体如下: #coding=utf8 ''''' 标准类型函数: cmp():进行序列比较的算法规则如下: ----------------------------------------------------------------------------- 1. 对两个列表的元素进行比较 2. 如果比较的元素是同类型的,则比较其值,返回结果 3. 如果两个元素的不是同一种类型,则检查它们是否是数字 a. 如果是数字,
-
python dict remove数组删除(del,pop)
比如代码 binfo = {'name':'jay','age':20,'python':'haha'} print binfo.pop('name')#pop方法删除键,并且返回键对应的值 print binfo##输出结果:{'python': 'haha', 'age': 20} del binfo['python']##内置方法删除元素 print binfo##输出结果:{'age': 20}
-
python for循环remove同一个list过程解析
下午在用python将Linux的conf配置文件转化成字典dict时遇到了一个奇怪的问题,原先conf配置文件中没有注释行(以#开头的行),后来为了避免这种情况,添加了一个对以#开头的行删除的操作. 实践结果颠覆了已有的认知,直接上代码示例. 代码片段1 #!/usr/bin/python # encoding: utf-8 # -*- coding: utf8 -*- import re list_to_test = ['# ', '# conf', 'NAME="Ubuntu"'
-
对python中数组的del,remove,pop区别详解
以a=[1,2,3] 为例,似乎使用del, remove, pop一个元素2 之后 a都是为 [1,3], 如下: >>> a=[1,2,3] >>> a.remove(2) >>> a [1, 3] >>> a=[1,2,3] >>> del a[1] >>> a [1, 3] >>> a= [1,2,3] >>> a.pop(1) 2 >>>
-
python删除列表元素的三种方法(remove,pop,del)
remove 删除单个元素,删除首个符合条件的元素,按值删除,返回值为空 List_remove = [1, 2, 2, 2, 3, 4] print(List_remove.remove(2)) print("after remove", List_remove) # None # after remove [1, 2, 2, 3, 4] -------------------------------------------------------------------------
随机推荐
- 探索Perl的世界(更新到40集)-Perl视频教程
- Thinkphp模板中使用自定义函数的方法
- javascript Math.random()随机数函数
- 微信小程序 刷新上拉下拉不会断详细介绍
- 使用 Iisftp.vbs 停止FTP站点的方法
- CentOS 7下MongoDB的安装配置详解
- Java中的length和length()深入分析
- Javascript限制网页只能在微信内置浏览器中访问
- asp.net 定时间点执行任务的简易解决办法
- PHP编码转换函数 自动转换字符集支持数组转换
- c# 托盘双击不触发单击事件的实现方法
- PHP 批量更新网页内容实现代码
- JS+DIV+CSS排版布局实现美观的选项卡效果
- ajax中文乱码的各种解决办法总结
- javascript模拟select,jselect的方法实现
- 实例解析Ruby程序中调用REXML来解析XML格式数据的用法
- VBS教程:VBscript语句-Do...Loop 语句
- smarty的section嵌套循环用法示例
- 一些cgi论坛所需要的影射
- PHP弱类型语言中类型判断操作实例详解
其他
- 从datatable取某区域的数据到另一datatable
- openlayer vue 修改地图样式
- vue ts 处理props
- 使用vuei18n放在服务器上组件不显示
- python 获取svn中所有文件名
- Android 跳过Pin验证弹窗
- html自定义按钮复制到剪切板
- sh脚本 如何打开cmd 执行 node
- springboot 统一返回多语言
- javacsv合并单元格
- feign服务之间调用 异常抛不出来
- van-upload使用 xhr 最大支持多大图片
- react中怎么把请求到的数据更新到state中
- linux 关闭 dotnet程序
- winform 窗口拖动变大小,鼠标移动过快,失效
- AutoPoi 使用模板动态导出excel
- c#想要删除文件但是显示文件在使用或者资源未释放不能删除
- js 根据路由获取面包屑
- java 中判断数组是否有重复
- pycharm中头部模板