通过使用元素的索引和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]