如何从一个列表中删除元素,如果其他列表包含要删除元素的索引
问题描述:
我有两个列表 - 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]
答
您可以尝试以下。
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)
非常感谢! – Alwina 2013-02-20 11:59:58