在Python中删除范围内的元素
通过使用元素的索引和del函数,可以直接从python删除单个元素。但是在某些情况下,我们需要删除一组索引的元素。本文探讨了仅删除索引列表中指定的列表中那些元素的方法。
使用排序和删除
在这种方法中,我们创建一个包含必须删除的索引值的列表。我们对它们进行排序和反转以保留列表元素的原始顺序。最后,我们将del函数应用于这些特定索引点的原始给定列表。
示例
Alist = [11,6, 8, 3, 2]# The indices list
idx_list = [1, 3, 0]
#打印原始列表
print("Given list is : ", Alist)
#打印索引列表
print("The indices list is : ", idx_list)
# Use del and sorted()for i in sorted(idx_list, reverse=True):
del Alist[i]
# Print result
print("List after deleted elements : " ,Alist)
输出结果
运行上面的代码给我们以下结果-
Given list is : [11, 6, 8, 3, 2]The indices list is : [1, 3, 0]
List after deleted elements : [8, 2]
排序和反向后的idx_list变为[0,1,3]。因此,只有这些位置的元素被删除。
使用枚举而不是
我们还可以通过在for循环中使用枚举和not in子句来实现上述程序。结果与上面相同。
示例
Alist = [11,6, 8, 3, 2]# The indices list
idx_list = [1, 3, 0]
# printing the original list
print("Given list is : ", Alist)
# printing the indices list
print("The indices list is : ", idx_list)
# Use slicing and not in
Alist[:] = [ j for i, j in enumerate(Alist)
if i not in idx_list ]
# Print result
print("List after deleted elements : " ,Alist)
输出结果
运行上面的代码给我们以下结果-
Given list is : [11, 6, 8, 3, 2]The indices list is : [1, 3, 0]
List after deleted elements : [8, 2]
以上是 在Python中删除范围内的元素 的全部内容, 来源链接: utcz.com/z/316686.html