如何从一个列表中删除元素,如果其他列表包含要删除元素的索引

问题描述:

我有两个列表 - lista = [1,2,3,5,0,5,6,0] listb = [4,7]如何从一个列表中删除元素,如果其他列表包含要删除元素的索引

listb包含索引号。我如何从列表中删除索引4和7(包含在lisb中)。

我这样想打印new_lista为[1,2,3,5,5,6]

我希望这是有道理的。

Alwina

使用enumerate

new_lista = [j for i, j in enumerate(lista) if i not in listb] 
+0

非常感谢! – Alwina 2013-02-20 11:59:58

您可以尝试以下。

for x in sorted(listb,reverse=True): lista.pop(x) 

此外,您可能需要确保listb不包含重复索引,并且所有索引号都是有效索引。

for x in sorted(set([y for y in listb if -1 < y < len(lista)]),reverse=True): lista.pop(x)