在 Python 中删除范围内的元素
pythonserver side programmingprogramming更新于 2025/11/23 5:00:17
使用元素的索引和 del 函数,从 Python 中删除单个元素非常简单。但在某些情况下,我们需要删除一组索引中的元素。本文探讨了仅删除索引列表中指定的元素的方法。
使用 sort 和 del
在这种方法中,我们创建一个包含必须删除的索引值的列表。我们对它们进行排序和反转,以保留列表元素的原始顺序。最后,我们将 del 函数应用于原始给定列表中的那些特定索引点。
示例
Alist = [11,6, 8, 3, 2]
# 索引列表
idx_list = [1, 3, 0]
# 打印原始列表
print("给定列表为:", Alist)
# 打印索引列表
print("索引列表为:", idx_list)
# 使用 del 和 sorted()
for i in sorted(idx_list, reverse=True):
del Alist[i]
# 打印结果
print("删除元素后的列表:",Alist)
输出
运行上述代码得到以下结果 −
给定列表为:[11, 6, 8, 3, 2] 索引列表为:[1, 3, 0] 删除元素后的列表:[8, 2]
排序和反转后,idx_list 变为 [0,1,3]。因此,只有这些位置的元素会被删除。
使用 enumerate 和 not in
我们还可以在 for 循环中使用 enumerate 和 not in 子句来实现上述程序。结果与上面相同。
示例
Alist = [11,6, 8, 3, 2]
# 索引列表
idx_list = [1, 3, 0]
# 打印原始列表
print("给定列表为 : ", Alist)
# 打印索引列表
print("索引列表为 : ", idx_list)
# 使用切片而不是 in
Alist[:] = [ j for i, j in enumerate(Alist)
if i not in idx_list ]
# 打印结果
print("删除元素后的列表 : " ,Alist)
输出
运行上述代码得到以下结果 −
给定列表为:[11, 6, 8, 3, 2] 索引列表为:[1, 3, 0] 删除元素后的列表:[8, 2]
相关文章
有用资源
python 参考教程 - 该教程包含有关 python 的更多信息:https://www.cainiaomax.com/python/

