使用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 "
" , line 1, in -
- 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 "
" , line 1, in -
- 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 "
" , line 1, in -
- print(list1)
-
- NameError: name 'list1' is not defined. Did you mean: 'list'?
其中,del不但将list1中元素全部删除,而且还删除掉了list1本身。此时打印list1中元素时,错误信息为“名称错误:list1没有定义”。