列表既然能添加元素,那么也能删除元素。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')。