python如何删除list

13次阅读

python删除list元素需据需求选择方法:按索引用pop()可删末尾或指定位置元素并返回值,越界会报IndexError;按值用remove()删首个匹配项;清空用clear();条件删除可用列表推导式或Filter()。

python如何删除list

Python 中删除 list 元素有多种方式,关键看你想删什么:是按位置删、按值删、清空整个列表,还是删掉满足条件的多个元素。选对方法能避免报错或误删。

按索引删除单个元素(用 pop()

pop() 默认删最后一个,也可以指定索引。它会返回被删的值,适合需要“取出并删除”的场景。

  • my_list = [10, 20, 30, 40]
  • removed = my_list.pop() # 删除 40,removed 是 40
  • my_list.pop(1) # 删除索引 1 的元素(原为 20)
  • 索引越界会报 IndexError,删前可先检查 if 0

按值删除第一个匹配项(用 remove()

remove(x) 删除列表中**第一个等于 x 的元素**。不返回值,只修改原列表。

  • fruits = ['apple', 'banana', 'cherry', 'banana']
  • fruits.remove('banana') # 只删第一个 'banana'
  • 如果值不存在,会抛出 ValueError;可用 if x in my_list: 先判断

批量删除或清空(用 delclear()

del 是语句,功能最灵活;clear() 最直接用于清空。

立即学习Python免费学习笔记(深入)”;

  • del my_list[2] # 删除索引 2 的元素
  • del my_list[1:3] # 删除切片(索引 1 和 2)
  • del my_list[:] # 清空所有元素(等价于 my_list.clear())
  • my_list.clear() # 推荐用于清空,语义清晰
  • del my_list # 这是删除变量本身,不是清空列表!之后再访问会报 NameError

删除满足条件的多个元素(用列表推导式或 filter()

想删掉所有偶数、所有空字符串等,别用 for 循环边遍历边删(会跳过元素),改用生成新列表。

  • nums = [1, 2, 3, 4, 5, 6]
  • nums = [x for x in nums if x % 2 != 0] # 留下奇数,相当于删掉偶数
  • words = ['', 'hello', ' ', 'world']
  • words = [w for w in words if w.strip()] # 删掉空或纯空白字符串
text=ZqhQzanResources