Python中列表删除元素(第7节)


列表既然能添加元素,那么也能删除元素。Python中对列表删除元素的主要有3种方法:pop()、remove()、del

1、pop()函数

pop()函数可以根据索引值从列表中删除一个元素,它接受一个参数(要删除元素的索引值),如果没有指定索引值,默认删除最后一个元素。注意,pop()函数有返回值,返回值为所删除的元素,例如:

动手练一练:

a = [4, 5, 6, 7, 8]
print("初始列表为:", a)  # 输出 [4, 5, 6, 7, 8]
b = a.pop(2)  # 删除a中索引为2的元素,“a.pop(2)”会返回被删除的元素“6”,并将其赋值给变量b
print("被删除的元素为:", b)  # b的值为6
print("使用pop删除结果为:", a)  # a已经被pop函数删除后变为[4, 5, 7, 8]

print("-------这是虚线-------")

c = [4, 5, 6, 7, 8]
print("初始列表为:", c)  # 输出 [4, 5, 6, 7, 8]
d = c.pop()  # 默认删除c中最后一个元素,“c.pop()”会返回被删除的元素“8”,并将其赋值给变量d
print("被删除的元素为:", d)  # d的值为8
print("使用pop删除结果为:", c)  # c已经被pop函数删除后变为[4, 5, 6, 7]

执行以上代码,输出结果为:

初始列表为 [4, 5, 6, 7, 8]
被删除的元素为 6
使用pop删除结果为 [4, 5, 7, 8]
-------这是虚线-------
初始列表为 [4, 5, 6, 7, 8]
被删除的元素为 8
使用pop删除结果为 [4, 5, 6, 7]

上面的例子中,pop()函数的用法很简单,使用时需要提供要删除的元素的索引作为参数。如果没有指定索引,则默认删除列表中的最后一个元素。该方法会同时删除元素并返回被删除的元素,因此可以将其赋值给一个变量进行进一步的处理。

2、remove()函数

除了根据位置删除元素,Python还提供了remove()函数,该方法会根据元素的内容来对元素进行删除操作,并且没有返回值。remove()方法接受一个参数,即要删除的元素,如果列表中存在多个相同的元素,remove()方法只会删除第一个匹配的元素,例如:

动手练一练:

a = ["Orange", "Apple", "Banana", "Apple", "Cherry"]
print("初始列表为:", a)  # 输出 ["Orange", "Apple", "Banana", "Apple", "Cherry"]
print("-------remove-------")
a.remove("Apple")  # 只删除a中第一个匹配的元素的"Apple"
print("a被删除后为:", a)  # 输出  ['Orange', 'Banana', 'Apple', 'Cherry']

执行以上代码,输出结果为:

初始列表为 ['Orange', 'Apple', 'Banana', 'Apple', 'Cherry']
-------remove-------
a被删除后为 ['Orange', 'Banana', 'Apple', 'Cherry']

上面的例子中,remove()方法会搜索列表中第一个值为指定元素的元素,并删除它,需要注意的是,如果要删除的元素在列表中不存在,会抛出ValueError异常。

3、del语句

如果想要删除一个或者连续几个元素,还可以使用关键字del来删除列表元素,del语句可以根据索引值从列表中删除元素,它不需要调用任何方法,只需要指定要删除元素的索引值即可。如果要删除多个元素,可以使用切片操作,例如:

动手练一练:

a = ["Orange", "Apple", "Banana", "Cherry"]
print("初始列表为:", a)  # 输出 ["Orange", "Apple", "Banana", "Cherry"]
del a[2]
print("使用del结果为:", a) # 输出  ['Orange', 'Apple', 'Cherry']

print('------这是虚线------')

b = ["Orange", "Apple", "Banana", "Cherry"]
print("初始列表为:", b)  # 输出 ["Orange", "Apple", "Banana", "Cherry"]
del b[1:3]
print("使用del结果为:", b) # 输出  ['Orange', 'Cherry']

执行以上代码,输出结果为:

初始列表为 ['Orange', 'Apple', 'Banana', 'Cherry']
使用del结果为 ['Orange', 'Apple', 'Cherry']
------这是虚线------
初始列表为 ['Orange', 'Apple', 'Banana', 'Cherry']
使用del结果为 ['Orange', 'Cherry']

上面的例子中,需要注意的是,切片操作不包括指定的结束索引下标位置,因此上述代码中“b[1:3]”实际删除了索引下标为1到2的元素(即'Apple'和'Banana')。