使用remove()、pop()或者clear()刪除list中的元素。
remove()方法的語法如下所示:
list.remove(value,/)
其中,value表示要刪除的值。
使用remove()方法刪除list中元素的代碼,如下所示:
>>> list1 = [1,2,3,4,5]
>>> list1.remove(2)
>>> print(list1)
[1, 3, 4, 5]
其中,使用remove()方法刪除list1中值為2的元素。
(1)remove()刪除的是list中第一個出現的元素
remove()方法刪除的是列表中第一出現的元素,代碼如下所示:
>>> list1 = [1,2,3,4,5,2]
>>> list1.remove(2)
>>> print(list1)
[1, 3, 4, 5, 2]
其中,list1中包含兩個值為2的元素,使用remove()方法刪除值為2的元素時,索引為1的元素被刪除,而索引是5的元素2沒有被刪除。
(2)當列表中不包含要刪除的元素時,會顯示異常
代碼如下所示:
>>> list1
[1, 3, 4, 5, 2]
>>> list1.remove(6)
Traceback (most recent call last):
File "<pyshell#7>", line 1, in <module>
list1.remove(6)
ValueError: list.remove(x): x not in list
當要刪除list1中值為6的元素時,因為list1中不包含改元素,因此程序會顯示異常,該異常的信息是“值錯誤:list.remove(x):x沒有在列表中”。
pop()方法的語法如下所示:
list.pop(index=-1,/)
其中,參數index表示要刪除的元素對應的索引,其默認值是-1,即默認刪除的是列表中最後一個元素。pop()方法的返回值是要刪除的元素值。
使用pop()方法刪除列表中元素的相關代碼如下所示:
>>> list1
[1, 3, 4, 5, 2]
>>> a = list1.pop()
>>> print(a)
2
>>> print(list1)
[1, 3, 4, 5]
其中,pop()沒有指定要刪除元素的索引值,因此默認刪除的是列表中的最後一個元素,並且將該元素保存在了變量a中。指定要刪除元素索引值的代碼如下所示:
>>> b = list1.pop(1)
>>> print(b)
3
>>> print(list1)
[1, 4, 5]
此時,通過pop()刪除的是列表中索引為1的元素,並將該元素保存在變量b中。
通過pop()刪除指定元素時,其索引值不能超過列表中元素的最大索引值,否則程序會顯示異常,代碼如下所示。
>>> list1.pop(4)
Traceback (most recent call last):
File "<pyshell#15>", line 1, in <module>
list1.pop(4)
IndexError: pop index out of range
>>>
其中,list1元素的最大索引值是2,此時將pop()方法的參數設置為4,超出了其索引最大值。此時的異常信息為“索引錯誤:pop的索引超出了范圍”。
clear()方法的作用是刪除list中的所有元素,代碼如下所示。
>>> print(list1)
[1, 4, 5]
>>> list1.clear()
>>> print(list1)
[]
使用Python的內置函數del也可以刪除列表中的元素或列表。
使用del函數,通過列表名和索引值來刪除列表中指定的元素,代碼如下所示。
>>> list1 = [1,2,3,4,5]
>>> del list1[1]
>>> print(list1)
[1, 3, 4, 5]
可以使用del函數刪除整個列表,代碼如下所示。
>>> del list1
>>> print(list1)
Traceback (most recent call last):
File "<pyshell#30>", line 1, in <module>
print(list1)
NameError: name 'list1' is not defined. Did you mean: 'list'?
其中,del不但將list1中元素全部刪除,而且還刪除掉了list1本身。此時打印list1中元素時,錯誤信息為“名稱錯誤:list1沒有定義”。