Python list 列表删除元素
作者:XD / 发表: 2025年10月11日 05:10 / 更新: 2025年10月11日 05:10 / 编程笔记 / 阅读量:18
# ============================================
# Python list 列表删除元素(4种方法)
# 作者:XD
# 日期:2025-10-11
# ============================================
# 在 Python 中删除列表元素常见有 4 种方式:
# 1. 使用 del 按索引删除
# 2. 使用 pop() 按索引删除并返回元素
# 3. 使用 remove() 按值删除
# 4. 使用 clear() 清空整个列表
# ------------------------------------------------
# 1. del:根据索引值删除元素
# ------------------------------------------------
# del 是 Python 的关键字,用于删除变量或列表中的元素
# 语法:
# del listname[index] # 删除单个元素
# del listname[start:end] # 删除连续的一段元素
lang = ["Python", "C++", "Java", "PHP", "Ruby", "MATLAB"]
# 删除索引为 2 的元素(Java)
del lang[2]
print(lang)
# 删除倒数第二个元素(Ruby)
del lang[-2]
print(lang)
# 删除一段连续的元素(索引 1 到 3,不包含 4)
lang = ["Python", "C++", "Java", "PHP", "Ruby", "MATLAB"]
del lang[1:4]
print(lang)
# 扩展列表后删除一段负索引范围
lang.extend(["SQL", "C#", "Go"])
del lang[-5:-2]
print(lang)
# ------------------------------------------------
# 2. pop():根据索引值删除元素,并返回该元素
# ------------------------------------------------
# 语法:
# listname.pop(index)
# 如果不写 index 参数,则默认删除最后一个元素(类似“出栈”)
nums = [40, 36, 89, 2, 36, 100, 7]
# 删除索引为 3 的元素
nums.pop(3)
print(nums)
# 删除最后一个元素
nums.pop()
print(nums)
# pop() 通常与 append() 搭配使用,形成“栈”操作
# append() 相当于“入栈”,pop() 相当于“出栈”
# ------------------------------------------------
# 3. remove():根据元素值进行删除
# ------------------------------------------------
# 语法:
# listname.remove(value)
# remove() 方法只会删除第一个匹配到的值,若不存在则报错
nums = [40, 36, 89, 2, 36, 100, 7]
# 第一次删除 36
nums.remove(36)
print(nums)
# 第二次删除 36
nums.remove(36)
print(nums)
# 删除不存在的元素(会报错)
# nums.remove(78) # ValueError: list.remove(x): x not in list
# 建议在使用 remove() 前先判断元素是否存在
if 78 in nums:
nums.remove(78)
else:
print("元素 78 不在列表中,无法删除。")
# ------------------------------------------------
# 4. clear():清空整个列表
# ------------------------------------------------
# 语法:
# listname.clear()
# 清除所有元素,相当于将列表重置为空
url = list("http://c.biancheng.net/python/")
url.clear()
print(url) # 输出:[]
# ------------------------------------------------
# ✅ 四种方法对比总结:
# ------------------------------------------------
# | 方法 | 删除依据 | 是否返回值 | 可删除范围 | 错误情况 |
# |------------|-----------|-------------|-------------|-----------|
# | del | 索引 | 无 | 单个或连续元素 | 索引越界 |
# | pop() | 索引 | 有(被删元素) | 单个元素 | 索引越界 |
# | remove() | 元素值 | 无 | 单个匹配值 | 元素不存在 |
# | clear() | 无 | 无 | 全部元素 | 无 |
# ------------------------------------------------
# 使用建议:
# - 需要保留被删除的值 → 用 pop()
# - 需要按值删除 → 用 remove()
# - 删除一段或全部 → 用 del / clear()
# ------------------------------------------------
相关标签