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
  • 相关阅读:
    14.使用nodejs将规定格式的txt转化为json数据
    13.resize妙用(书上看到的)
    12.写了一个怪怪的边框
    11.一起来抄一个小小的提示菜单
    UI02-textfiled.按钮 uibutton
    UI01-UIview UIlable的属性
    OC9-内存管理
    OC8-属性 KVC是键值编码
    OC7-‍ 类目,延展 协议代理。
    OC6-block-函数指针
  • 原文地址:https://www.cnblogs.com/lincappu/p/13140560.html
Copyright © 2011-2022 走看看