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
  • 相关阅读:
    HDU 4081 Qin Shi Huang's National Road System
    POJ 2075 Tangled in Cables 最小生成树
    HDU 2487 Ugly window
    UVA 11426 GCD Extrme (Ⅲ)
    POJ_1220_Nmber Sequence
    Fibonacci数列对任何数取模都是一个周期数列
    POJ_3321_APPLE_TREE
    webpack配置---设置快捷打包和浏览器自动刷新
    sublime中css输入分号后自动提示的烦恼
    MongoDB的基本使用
  • 原文地址:https://www.cnblogs.com/lincappu/p/13140560.html
Copyright © 2011-2022 走看看