• 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
  • 相关阅读:
    嵌入式系统之微处理器篇
    嵌入式系统之基础概念篇
    八大排序算法简述
    进程-PV操作
    实时操作系统与分时操作系统
    串口助手
    STM32通用定时器功能和用法
    三种主流芯片架构简单比较
    python 我的第一个自动化脚本
    jquery部分实用功能
  • 原文地址:https://www.cnblogs.com/lincappu/p/13140560.html
Copyright © 2020-2023  润新知