当前位置:首页>python>Python 列表删除元素的 5 种方法,一文搞懂!

Python 列表删除元素的 5 种方法,一文搞懂!

  • 2026-10-11 08:09:09
Python 列表删除元素的 5 种方法,一文搞懂!
【写在前面】可以参看我的视频进行学习,Python-从入门到提高系列课程,持续更新中 ,喜欢的朋友关注,点赞,分享。需要笔记代码的同学,在评论区留言。

在 Python 编程中,列表(List)是最常用的数据结构之一。删除列表元素是高频操作,但方法众多,容易混淆。今天用实例带你彻底掌握!


方法一:del 语句 —— 按索引删除

特点:根据索引位置删除,支持删除单个元素或切片。

fruits = ['苹果', '香蕉', '橙子', '葡萄', '西瓜']

# 删除索引为 1 的元素(香蕉)
del fruits[1]
print(fruits)  # 输出: ['苹果', '橙子', '葡萄', '西瓜']

# 删除索引 1 到 3 的元素(切片删除)
fruits = ['苹果', '香蕉', '橙子', '葡萄', '西瓜']
del fruits[1:3]
print(fruits)  # 输出: ['苹果', '葡萄', '西瓜']

⚠️ 注意:索引越界会报错 IndexError


方法二:pop() —— 弹出元素(可获取被删值)

特点:删除指定索引元素,并返回该元素的值。默认删除最后一个。

colors = ['红', '绿', '蓝', '黄']

# 删除最后一个元素,并获取它
last = colors.pop()
print(f"被删除的是: {last}")   # 输出: 被删除的是: 黄
print(f"剩余列表: {colors}")   # 输出: 剩余列表: ['红', '绿', '蓝']

# 删除索引为 1 的元素
colors = ['红', '绿', '蓝', '黄']
removed = colors.pop(1)
print(f"被删除的是: {removed}") # 输出: 被删除的是: 绿

💡 适用场景:需要知道被删除了什么,比如实现"撤销"功能。


方法三:remove() —— 按值删除

特点:根据元素值删除第一个匹配项,不返回被删值。

scores = [85, 90, 78, 90, 88]

# 删除第一个值为 90 的元素
scores.remove(90)
print(scores)  # 输出: [85, 78, 90, 88]

# 删除不存在的值会报错
scores.remove(100)  # ❌ ValueError: list.remove(x): x not in list

✅ 安全写法:先判断是否存在

if100in scores:
    scores.remove(100)

方法四:列表推导式 —— 批量删除/过滤

特点:根据条件保留元素,本质上是创建新列表。

numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

# 删除所有偶数,只保留奇数
odd_numbers = [x for x in numbers if x % 2 != 0]
print(odd_numbers)  # 输出: [1, 3, 5, 7, 9]

# 删除包含特定字符的字符串
names = ['张三', '李四', '张五', '王六']
filtered = [name for name in names ifnot name.startswith('张')]
print(filtered)  # 输出: ['李四', '王六']

🔥 优势:代码简洁,适合批量过滤场景。


方法五:clear() —— 清空整个列表

特点:一键清空,保留空列表。

tasks = ['写作业', '洗衣服', '买菜']
tasks.clear()
print(tasks)  # 输出: []

📊 方法对比速查表

方法
删除依据
返回值
是否修改原列表
注意点
del list[i]
索引
无
✅ 是
支持切片,越界报错
pop(i)
索引(默认最后)
被删元素
✅ 是
越界报错
remove(x)
值
无
✅ 是
只删第一个,不存在报错
列表推导式
条件
新列表
❌ 否(创建新列表)
适合批量过滤
clear()
全部
无
✅ 是
清空为 []

🎯 实战案例:删除列表中的重复元素

# 保留顺序去重
original = [1, 2, 2, 3, 3, 3, 4]
unique = []
for x in original:
if x notin unique:
        unique.append(x)
print(unique)  # 输出: [1, 2, 3, 4]

# 一行代码版(Python 3.7+ 字典有序)
unique = list(dict.fromkeys(original))
print(unique)  # 输出: [1, 2, 3, 4]

💬 总结

  • 知道索引 → 用 del 或 pop()
  • 知道值 → 用 remove()(记得判断存在性)
  • 批量过滤 → 用列表推导式
  • 清空全部 → 用 clear()

掌握这 5 种方法,列表删除操作再也不迷茫!建议收藏备用 🌟


最新文章

随机文章