在 Python 中,如果想要删除列表中的某个元素,我们可以使用以下 3 种方式:
- del 关键字
- pop() 方法
- remove() 方法
使用 del 删除列表元素
在 Python 中,我们可以使用 del 关键字来删除列表中的某一个元素。del 这种方式是根据 “下标” 来删除元素的。
语法:
del list[n]说明:
n 是列表的下标,从 0 开始。
注意: del 关键字会修改原列表。
示例 1:使用 del 关键字
animals = ['ant', 'bee', 'cat', 'dog', 'ewe']
del animals[2]
print(animals)运行结果如下。
['ant', 'bee', 'dog', 'ewe']分析:
del 关键字的用法非常简单,直接根据列表下标来删除元素。
使用 pop() 删除列表元素
在 Python 中,我们可以使用 pop() 方法删除列表中的某一个元素(默认是最后一个元素),并且返回该元素的值。
语法:
list.pop(n)说明:
n 是列表下标,从 0 开始。当 n 不省略时,表示删除下标为 n 的元素;当 n 省略时,表示删除的是列表最后一个元素。
注意: pop() 方法会修改原列表。
示例 2:pop() 不带参数
animals = ['ant', 'bee', 'cat', 'dog', 'ewe']
animals.pop()
print(animals)运行结果如下。
['ant', 'bee', 'cat', 'dog']当然,我们也可以使用多次 pop() 方法来删除列表末尾多个元素。
示例 3:pop() 带参数
animals = ['ant', 'bee', 'cat', 'dog', 'ewe']
animals.pop(2)
print(animals)运行结果如下。
['ant', 'bee', 'dog', 'ewe']使用 remove() 删除列表元素
在 Python 中,我们还可以使用 remove() 方法来删除列表中某一个元素。remove() 这种方式是根据 “值” 来删除元素的。
语法:
list.remove(value)说明:
如果列表存在多个相同的值,那么 remove() 方法只会删除 “第一个匹配到的值”。
注意: remove() 方法会修改原列表。
示例 4:使用 remove() 方法
animals = ['ant', 'bee', 'cat', 'dog', 'ant']
animals.remove('ant')
print(animals)运行结果如下。
['bee', 'cat', 'dog', 'ant']分析:
列表 animals 中存在两个 'ant',因此 animals.remove('ant') 只会删除第一个 'ant',也就是第一个匹配上的元素。使用 remove() 方法删除元素时,如果指定的元素不存在,就会报错。为了避免这种情况,我们最好先判断元素是否存在。
示例 5:先判断后使用 remove()
animals = ['ant', 'bee', 'cat', 'dog', 'ant']
if 'ant' in animals:
animals.remove('ant')
print(animals)运行结果如下。
['bee', 'cat', 'dog', 'ant']分析:
if 'ant' in animals 表示判断 'ant' 是否存在于 animals。animals.remove('ant') 只会删除第一个 'ant',而后面如果还有 'ant',就不会进行删除。如果想要把列表中所有的某个值删除,此时应该怎么实现呢?最简单的就是使用 for 循环来实现。
示例 6:remove() 删除所有的某个值
animals = ['ant', 'bee', 'cat', 'dog', 'ant']
result = []
for i in range(len(animals)):
if animals[i] != 'ant':
result.append(animals[i])
print(result)运行结果如下。
['bee', 'cat', 'dog']分析:
上面示例中定义了一个空的列表 result,它主要用于保存结果。接下来使用 for 循环对列表进行遍历,如果当前项的值不是 'ant',就使用 append() 方法添加到 result 中。此外,len(animals) 表示使用 len() 函数来获取 animals 的长度。
最后,我们来总结一下删除元素的方法,有以下 4 点。
- del、pop()、remove() 这 3 种方式都会修改原列表。
- 如果知道想要删除的值在列表中的下标,可以使用 del 和 pop()。
- 如果不知道想要删除的值在列表中的下标,只知道值是什么,可以使用 remove()。
- 如果不知道列表元素个数,却想要删除最后一个元素,可以使用 pop()。
