在 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]

相关文章


有用资源