以a=[1,2,3] 为例,似乎使用del, remove, pop一个元素2 之后 a都是为 [1,3], 如下:http://Novell.Me


  1. >>> a=[1,2,3]
  2. >>> a.remove(2)
  3. >>> a
  4. [1, 3]
  5. >>> a=[1,2,3]
  6. >>> del a[1]
  7. >>> a
  8. [1, 3]
  9. >>> a= [1,2,3]
  10. >>> a.pop(1)
  11. 2
  12. >>> a
  13. [1, 3]
  14. >>>
CopyRight http://novell.me

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

首先,remove 是删除首个符合条件的元素。并不是删除特定的索引。如下例: 版权所有,未经Novell迷允许,不得转载!


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

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


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

第1个元素为a[0] --是以0开始计数的。则a[1]是指第2个元素,即里面的值2. 本文转载自http://novell.me

最后我们再看看pop


  1. >>> a = [4, 3, 5]
  2. >>> a.pop(1)
  3. 3
  4. >>> a
  5. [4, 5]
http://Novell.Me

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

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

另外它们如果出错,出错模式也是不一样的。注意看下面区别:


  1. >>> a = [4, 5, 6]
  2. >>> a.remove(7)
  3. Traceback (most recent call last):
  4. File "", line 1, in
  5. ValueError: list.remove(x): x not in list
  6. >>> del a[7]
  7. Traceback (most recent call last):
  8. File "", line 1, in
  9. IndexError: list assignment index out of range
  10. >>> a.pop(7)
  11. Traceback (most recent call last):
  12. File "", line 1, in
  13. IndexError: pop index out of range

Python中remove,del和pop的区别的更多相关文章

  1. python中import和from...import...的区别

    python中import和from...import...的区别: 只用import时,如import xx,引入的xx是模块名,而不是模块内具体的类.函数.变量等成员,使用该模块的成员时需写成xx ...

  2. 转发 python中file和open有什么区别

    python中file和open有什么区别?2008-04-15 11:30地痞小流氓 | 分类:python | 浏览3426次python中file和open有什么区别?都是打开文件,说的越详细越 ...

  3. python中的del

    python中的del,只删除变量,不删除数据,具体表现为: a=1,c=a,del a,(c=1) 和 a = [1,2,3,4,5] b= a[0] del a[0] print a ([2,3, ...

  4. Python中str()与repr()函数的区别——repr() 的输出追求明确性,除了对象内容,还需要展示出对象的数据类型信息,适合开发和调试阶段使用

    Python中str()与repr()函数的区别 from:https://www.jianshu.com/p/2a41315ca47e 在 Python 中要将某一类型的变量或者常量转换为字符串对象 ...

  5. python中list/tuple/dict/set的区别

    序列是Python中最基本的数据结构.序列中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0,第二个索引是1,依此类推.Python有6个序列的内置类型,但最常见的是列表list和元组t ...

  6. Python中list,tuple,dict,set的区别和用法

    Python语言简洁明了,可以用较少的代码实现同样的功能.这其中Python的四个内置数据类型功不可没,他们即是list, tuple, dict, set.这里对他们进行一个简明的总结. List ...

  7. python中set和frozenset方法和区别

    set(可变集合)与frozenset(不可变集合)的区别:set无序排序且不重复,是可变的,有add(),remove()等方法.既然是可变的,所以它不存在哈希值.基本功能包括关系测试和消除重复元素 ...

  8. Python中list,tuple,dict,set的区别和用法(转)

    原文地址:http://www.cnblogs.com/soaringEveryday/p/5044007.html Python语言简洁明了,可以用较少的代码实现同样的功能.这其中Python的四个 ...

  9. Python中str()与repr()函数的区别

    在 Python 中要将某一类型的变量或者常量转换为字符串对象通常有两种方法,即str()或者 repr() . >>> a = 10 >>> type(str(a ...

  10. python中的__init__和__new__的区别

    一.__init__ 方法是什么?(init前后的线是双下划线) 使用Python写过面向对象的代码的同学,可能对 __init__ 方法已经非常熟悉了,__init__ 方法通常用在初始化一个类实例 ...

随机推荐

  1. http应用优化和加速说明-负载均衡

    负载均衡技术       现代企业信息化应用越来越多的采用B/S应用架构来承载企业的关键业务,因此,确保这些任务的可靠运行就变得日益重要.随着越来越多的企业实施数据集中,应用的扩展性.安全性和可靠性也 ...

  2. zlog学习笔记(zc_hashtable)

    zc_hashtable.h /** * hashtable */ #ifndef __zc_hashtable_h #define __zc_hashtable_h typedef struct z ...

  3. Use Cursor

    declare : CURSOR cursor_name IS select_statement ; open : OPEN cursor_name if the query returns no r ...

  4. HRV基础

    Source: Mostly from wiki. Heart rate variability (HRV,心率变异性) is the physiological phenomenon of vari ...

  5. KeyBord事件从Activtiy层往下分发详细过程代码示例

    step1:调用Activity成员函数dispatchKeyEvent public boolean dispatchKeyEvent(KeyEvent event) { // Let action ...

  6. IE8中给HTML标签负值报错问题

    当通过JS给一个HTML标签设置高宽为负值的时候,会爆出一个“参数无效”的错误 chrome下不会报错,但是元素不会做任何关于负值的改变

  7. codevs2806 红与黑

    难度等级:白银 codevs2806 红与黑 题目描述 Description 有一个矩形房间,覆盖正方形瓷砖.每块瓷砖涂成了红色或黑色.一名男子站在黑色的瓷砖上,由此出发,可以移到四个相邻瓷砖之一, ...

  8. vbs keys

    其使用格式为: object.SendKeys string "object":表示WshShell对象 "string":表示要发送的按键指令字符串,需要放在 ...

  9. 从Hadoop Summit 2016看大数据行业与Hadoop的发展

    前言: 好吧我承认已经有四年多没有更新博客了.... 在这四年中发生了很多事情,换了工作,换了工作的方向.在工作的第一年的时候接触机器学习,从那之后的一年非常狂热的学习机器学习的相关技术,也写了一些自 ...

  10. jQuery学习笔记(三):选择器总结

    这一节详细的总结jQuery选择器. 一.基础选择器 $('#info'); // 选择id为info的元素,id为document中是唯一的,因此可以通过该选择器获取唯一的指定元素$('.infoC ...