在 Python 列表中删除元素主要分为以下 3 种场景:
- 根据目标元素所在位置的索引进行删除,可以使用 del 关键字或者 pop() 方法;
- 根据元素本身的值进行删除,可使用列表(list类型)提供的 remove() 方法;
- 将列表中所有元素全部删除,可使用列表(list类型)提供的 clear() 方法。
del:根据索引值删除元素
del 不仅可以删除整个列表,还可以删除列表中的某些元素。
1、del 删除列表中的单个元素:
del list1[index]
#删除list1列表中索引值为index的值。
lang = ["Python", "C++", "Java", "PHP", "Ruby", "MATLAB"]
#使用正数索引
del lang[2]
print(lang)
#使用负数索引
del lang[-2]
print(lang)
输出结果:
['Python', 'C++', 'PHP', 'Ruby', 'MATLAB']
['Python', 'C++', 'PHP', 'MATLAB']
2、del 删除中间一段连续的元素:
del list1[strat:end]
#删除列表中索引值strat到end之间的元素。
#需要注意的是,这里只包含start不包含end
lang = ["Python", "C++", "Java", "PHP", "Ruby", "MATLAB"]
del lang[1: 4]
print(lang)
lang.extend(["SQL", "C#", "Go"])
del lang[-5: -2]
print(lang)
输出结果:
['Python', 'Ruby', 'MATLAB']
['Python', 'C#', 'Go']
remove():根据元素值进行删除
remove() 方法只会删除第一个和指定值相同的元素,而且必须保证该元素是存在的,否则会引发 ValueError 错误。
nums = [40, 36, 89, 2, 36, 100, 7]
#第一次删除36
nums.remove(36)
print(nums)
#第二次删除36
nums.remove(36)
print(nums)
#删除78
nums.remove(78)
print(nums)
输出结果:
[40, 89, 2, 36, 100, 7]
[40, 89, 2, 100, 7]
Traceback (most recent call last):
File "C:\Users\mozhiyan\Desktop\demo.py", line 9, in <module>
nums.remove(78)
ValueError: list.remove(x): x not in list
最后一次删除,因为 78 不存在导致报错,所以我们在使用 remove() 删除元素时最好提前判断一下。
clear():删除列表所有元素
clear() 用来删除列表的所有元素,也即清空列表。
a = [1,2,3,4,4]
a.clear()
print(a)
输出结果: [ ]