zoukankan      html  css  js  c++  java
  • python中数组的del,remove,pop区别详解

    以a=[1,2,3] 为例,似乎使用del, remove, pop一个元素2 之后 a都是为 [1,3],

    如下:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    >>> 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 是删除首个符合条件的元素。并不是删除特定的索引。

    如下例:

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

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

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

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

    最后我们再看看pop

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

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

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

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

    注意看下面区别:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    >>> 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
  • 相关阅读:
    webuploader之大文件分段上传、断点续传
    人民币数字金额转大写金额
    发现个delphi调用vc写的Dll中包括pchar參数报错奇怪现象
    HTML5 CSS3 专题 : 拖放 (Drag and Drop)
    Cts框架解析(6)-任务的运行
    vector draw 试用期结束的 激活方法
    15_Android中任务栈
    Android之——AIDL深入
    FZU 2155 盟国
    十分简洁的手机浏览器 lydiabox
  • 原文地址:https://www.cnblogs.com/lincappu/p/13140560.html
Copyright © 2011-2022 走看看