删除、删除和弹出列表之间的区别

  • 问题:
  • >>> 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]
    >>>

    以上三种从列表中删除元素的方法有什么区别吗?在

  • 答案:
  • 从列表中删除元素的三种不同方法的效果:

    删除删除第一个匹配的值,而不是特定的索引:

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

    del删除特定索引处的项:

    >>> a = [9, 8, 7, 6]
    >>> del a[1]
    >>> a
    [9, 7, 6]

    并且pop删除特定索引处的项并返回它

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

    它们的错误模式也不同:

    >>> 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