列表基本上是 Python 中最常用的数据结构之一了,并且删除操作也是经常使用的。
那到底有哪些方法可以删除列表中的元素呢?这篇文章就来总结一下。
一共有三种方法,分别是 remove
,pop
和 del
,下面来详细说明。
remove
L.remove(value) -> None — remove first occurrence of value. Raises ValueError if the value is not present.
remove
是从列表中删除指定的元素,参数是 value。
举个例子:
>>> lst = [1, 2, 3] >>> lst.remove(2) >>> lst [1, 3]
需要注意,remove
方法没有返回值,而且如果删除的元素不在列表中的话,会发生报错。
>>> lst = [1, 2, 3] >>> lst.remove(4) Traceback (most recent call last): File "<stdin>", line 1, in <module> ValueError: list.remove(x): x not in list
pop
L.pop([index]) -> item — remove and return item at index (default last). Raises IndexError if list is empty or index is out of range.
pop
是删除指定索引位置的元素,参数是 index。如果不指定索引,默认删除列表最后一个元素。
>>> lst = [1, 2, 3] >>> lst.pop(1) 2 >>> lst [1, 3] >>> >>> >>> >>> lst = [1, 2, 3] >>> >>> lst.pop() 3
pop
方法是有返回值的,如果删除索引超出列表范围也会报错。
>>> lst = [1, 2, 3] >>> lst.pop(5) Traceback (most recent call last): File "<stdin>", line 1, in <module> IndexError: pop index out of range >>>
del
del
一般用在字典比较多,不过也可以用在列表上。
>>> lst = [1, 2, 3] >>> del(lst[1]) >>> lst [1, 3]
直接传元素值是不行的,会报错:
>>> lst = [1, 2, 3] >>> del(2) File "<stdin>", line 1 SyntaxError: cannot delete literal
del
还可以删除整个列表:
>>> lst = [1, 2, 3] >>> del(lst) >>> >>> lst Traceback (most recent call last): File "<stdin>", line 1, in <module> NameError: name 'lst' is not defined