Python清单删除与对帐

时间:2018-08-27 13:59:19

标签: python list del

我正在尝试从列表中删除多个元素。 元素具有动态评估的索引,并存储在称为“ dstry”的列表中。它可能看起来像这样:

arr = [1, 2, 2, 3, 5, 6, 7, 8, 9, 2]
dstry = [1, 2, 9]

但是,如果我愿意...

for i in dstry:
    del arr[i]

列表开始缩小,dstry的目标元素不再在应有的位置。 从逻辑上讲,我该如何解决?如果del可以一次解决所有问题并延迟数组的崩溃,那就太好了。我应该用标记值代替这些元素,然后在以后出现的任何地方删除它们,以使索引不是一个因素吗?

谢谢

1 个答案:

答案 0 :(得分:1)

有点创意的解决方案,但这应该可以解决您拥有的索引的问题。

arr = [1, 2, 2, 3, 5, 6, 7, 8, 9, 2]
dstry = [1, 2, 9]

x=len(arr)

for i in dstry:
    del arr[-x+i]

print(arr)