master
/ 6.2.3 列表的删除.ipynb

6.2.3 列表的删除.ipynb @masterview markup · raw · history · blame

Notebook

列表的删除

列表有3个方法可被用于删除列表中的元素,这三个方法分别为:
pop()
remove()
clear()
下面分别介绍其用法。

(1)pop()方法的使用方式为:

__ls.pop([i])__
i 两边的方括号表示该参数是可选的,不是要求输入方括号
其中ls为要操作的列表名,i为要删除的列表元素的序号。
ls.pop(i)可用于移除列表中序号为“i”的一个元素,此处i为整数且不超过列表序号范围。
当括号中无参数时,ls.pop()移除列表的最后一个元素。
pop()方法是唯一一个能删除列表元素又能返回值的列表方法,其返回值为被移除的元素。

In [1]:
L = list('7319826540')  # 将字符串转为列表L
print(L)    # 输出列表元素['7', '3', '1', '9', '8', '2', '6', '5', '4', '0']

L.pop()     # 移除列表中最后一个元素
print(L)    # 输出列表元素['7', '3', '1', '9', '8', '2', '6', '5', '4']

s=L.pop()   # 移除列表中最后一个元素,并将移除的元素赋值给s
print(L,s)  # 输出列表元素及移除的数据['7', '3', '1', '9', '8', '2', '6', '5'] 4

L.pop(3)    # 移除列表中序号为3的元素
print(L)    # 输出列表元素['7', '3', '1', '8', '2', '6', '5']

s=L.pop(-3) # 移除列表中序号为3的元素,并将移除的元素赋值给s
print(L,s)  # 输出列表元素及被移除的数据['7', '3', '1', '8', '6', '5'] 2
['7', '3', '1', '9', '8', '2', '6', '5', '4', '0']
['7', '3', '1', '9', '8', '2', '6', '5', '4']
['7', '3', '1', '9', '8', '2', '6', '5'] 4
['7', '3', '1', '8', '2', '6', '5']
['7', '3', '1', '8', '6', '5'] 2

(2)remove()方法的使用方式为:

__ls.remove(x)__

其中ls为要操作的列表名,x为要删除的数据。
ls.remove(x)方法可用于删除列表中第一个与参数“x”值相同的元素。
列表中存在多个与参数“x”值相同的元素时,只删除第一个,保留其它元素。
当列表中不存在与参数“x”相同的元素时,抛出错误“ValueError: list.remove(x): x not in list”。

In [1]:
L = list('7319826540')                                   # 将字符串转为列表L
print(L)      # 输出列表元素['7', '3', '1', '9', '8', '2', '6', '5', '4', '0']

L.remove("1") # 删除列表中元素'1'(字符串)
print(L)      # 输出修改过的列表['7', '3', '9', '8', '2', '6', '5', '4', '0']
['7', '3', '1', '9', '8', '2', '6', '5', '4', '0']
['7', '3', '9', '8', '2', '6', '5', '4', '0']
In [4]:
L = list('7319826540')                                   # 将字符串转为列表L

L.remove("1")    # 删除列表中元素1(整数)
print(L)       # 删除对象在列表中不存在,抛出错误ValueError: list.remove(x): x not in list
['7', '3', '9', '8', '2', '6', '5', '4', '0']

为避免触发异常,在使用此方法删除元素前建议先做成员测试:

In [1]:
L = list('7319826540')                                   # 将字符串转为列表L
if 1 in L:
    L.remove(1)    # 若列表中存在整数1,则删除列表中元素1(整数)
print(L)           # 查看结果['7', '3', '1', '9', '8', '2', '6', '5', '4', '0']

(3)clear()方法的使用方式为:

__ls. clear()__

ls. clear()方法可用于删除列表中全部元素,即清空列表。
若L为当前操作的列表,则L.clear()作用与del L[:]相同。

In [5]:
L = list('7319826540')    # 将字符串转为列表L
print(L)      # 输出列表元素['7', '3', '1', '9', '8', '2', '6', '5', '4', '0']
L.clear()                 # 删除列表中全部元素
print(L)                  # 输出修改过的列表[]
['7', '3', '1', '9', '8', '2', '6', '5', '4', '0']
[]
In [6]:
L = list('7319826540')    # 将字符串转为列表L
del L[:]                  # 删除列表中全部元素
print(L)                  # 输出修改过的列表[]
[]
In [5]:
L = list('7319826540')    # 将字符串转为列表L
del L                     # 删除列表对象L
print(L)                  # NameError: name 'L' is not defined

当一个列表不再使用时,可以del 命令删除列表对象, del命令也可以被用于删除列表中的元素。

In [7]:
ls= list(range(5))  # 将range对象转为列表ls
print(ls)           # 输出结果为:[0, 1, 2, 3, 4]

del ls[1]           # 索引,删除列表ls中序号为“1”的元素
print(ls)           # 输出结果为:[0, 2, 3, 4]

del ls[1:3]         # 切片,删除列表对象ls中序号1,2的元素
print(ls)           # [0, 4]
In [6]:
ls= list(range(5))  # 将range对象转为列表ls
print(ls)           # 输出结果为:[0, 1, 2, 3, 4]

del ls              # 删除列表对象ls
print(ls)           # 列表ls不存在了,抛出错误, NameError: name 'ls' is not defined。
In [ ]: