对python中数组的del,remove,pop区别详解


Posted in Python onNovember 07, 2018

以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 
>>> a 
[1, 3] 
>>>

那么Python对于列表的del, remove, pop操作,它们之间有何区别呢?

首先,remove 是删除首个符合条件的元素。并不是删除特定的索引。

如下例:

>>> a = [0, 2, 2, 3] 
>>> a.remove(2) 
>>> a 
[0, 2, 3]

而对于 del 来说,它是根据索引(元素所在位置)来删除的,如下例:

>>> a = [3, 2, 2, 1] 
>>> del a[1] 
[3, 2, 1]

第1个元素为a[0] --是以0开始计数的。则a[1]是指第2个元素,即里面的值2.

最后我们再看看pop

>>> a = [4, 3, 5] 
>>> a.pop(1) 
3 
>>> a 
[4, 5]

pop返回的是你弹出的那个数值。

所以使用时要根据你的具体需求选用合适的方法。

另外它们如果出错,出错模式也是不一样的。

注意看下面区别:

>>> a = [4, 5, 6] 
>>> a.remove(7) 
Traceback (most recent call last): 
 File "<stdin>", line 1, in <module> 
ValueError: list.remove(x): x not in list 
>>> del a[7] 
Traceback (most recent call last): 
 File "<stdin>", line 1, in <module> 
IndexError: list assignment index out of range 
>>> a.pop(7) 
Traceback (most recent call last): 
 File "<stdin>", line 1, in <module> 
IndexError: pop index out of range

以上这篇对python中数组的del,remove,pop区别详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
在Python的Django框架中simple-todo工具的简单使用
May 30 Python
ansible作为python模块库使用的方法实例
Jan 17 Python
tensorflow实现softma识别MNIST
Mar 12 Python
Django处理文件上传File Uploads的实例
May 28 Python
Flask框架URL管理操作示例【基于@app.route】
Jul 23 Python
人工神经网络算法知识点总结
Jun 11 Python
python实现几种归一化方法(Normalization Method)
Jul 31 Python
一行Python代码制作动态二维码的实现
Sep 09 Python
python图像处理模块Pillow的学习详解
Oct 09 Python
python中操作文件的模块的方法总结
Feb 04 Python
Pytorch实现图像识别之数字识别(附详细注释)
May 11 Python
pytorch Dropout过拟合的操作
May 27 Python
对Python中plt的画图函数详解
Nov 07 #Python
python使用matplotlib绘制热图
Nov 07 #Python
Django objects的查询结果转化为json的三种方式的方法
Nov 07 #Python
Python将一个Excel拆分为多个Excel
Nov 07 #Python
python计算两个矩形框重合百分比的实例
Nov 07 #Python
numpy 计算两个数组重复程度的方法
Nov 07 #Python
python中for循环输出列表索引与对应的值方法
Nov 07 #Python
You might like
PHP数据库万能引擎类adodb配置使用以及实例集锦
2014/06/12 PHP
Yii2框架自定义类统一处理url操作示例
2019/05/25 PHP
TNC vs BOOM BO3 第一场2.13
2021/03/10 DOTA
slice函数的用法 之不错的应用
2006/12/29 Javascript
用CSS+JS实现的进度条效果效果
2007/06/05 Javascript
prototype 中文参数乱码解决方案
2009/11/09 Javascript
Json对象替换字符串占位符实现代码
2010/11/17 Javascript
新浪微博字数统计 textarea字数统计实现代码
2011/08/28 Javascript
JavaScript面向对象知识串结(读JavaScript高级程序设计(第三版))
2012/07/17 Javascript
JQuery中根据属性或属性值获得元素(6种情况获取方法)
2013/01/17 Javascript
JS实现可改变列宽的table实例
2013/07/02 Javascript
ff chrome和ie下全局动态定位的异同及全局高度的取法
2014/06/30 Javascript
JavaScript 动态加载脚本和样式的方法
2015/04/13 Javascript
JS建造者模式基本用法实例分析
2015/06/30 Javascript
javascript实现base64 md5 sha1 密码加密
2015/09/09 Javascript
详解javascript函数的参数
2015/11/10 Javascript
Bootstrap基本样式学习笔记之标签(5)
2016/12/07 Javascript
jquery表单验证插件validation使用方法详解
2017/01/20 Javascript
vuex与组件联合使用的方法
2018/05/10 Javascript
详解使用jest对vue项目进行单元测试
2018/09/07 Javascript
详解Vue实战指南之依赖注入(provide/inject)
2018/11/13 Javascript
Vue项目引发的「过滤器」使用教程
2019/03/12 Javascript
[42:32]完美世界DOTA2联赛循环赛 Magma vs PXG BO2第二场 10.28
2020/10/28 DOTA
python编程开发之类型转换convert实例分析
2015/11/13 Python
python爬虫_实现校园网自动重连脚本的教程
2018/04/22 Python
Django对接支付宝实现支付宝充值金币功能示例
2019/12/17 Python
HTML5之语义标签介绍
2016/07/07 HTML / CSS
您在慕尼黑的跑步商店:Lauf-bar
2019/10/11 全球购物
Java中compareTo和compare的区别
2016/04/12 面试题
财务会计专业推荐信
2013/11/30 职场文书
教学质量评估实施方案
2014/03/17 职场文书
意向书范文
2014/03/31 职场文书
电工技术比武方案
2014/05/11 职场文书
小学生学习保证书
2015/02/26 职场文书
拿破仑传读书笔记
2015/07/01 职场文书
创业计划书之溜冰场
2019/10/25 职场文书