python - 如何从给定的索引数组中弹出列表中的元素?
问题描述
我有一个清单
list=[[5,7,8],[2,8,4],[1,72,7],[8,79,80],[4,39,84],[6,78,89],[80,78,81],[12,39,50]]
我有一个索引列表:
indexes=[1,3,7]
最后,我想从列表中删除第 1、第 3 和第 7 个元素
并且输出应该是这样的:
[[5,7,8],[1,72,7],[4,39,84],[6,78,89],[80,78,81]]
我使用了这段代码:
for i in indexes:
list.pop(i)
但它不起作用,我该如何解决?
解决方案
我会创建一个不包含这些索引的新列表。对原始列表使用列表理解enumerate
(这样您就可以轻松获取列表和索引)甚至可以使它成为一个单行:
result = [e[1] for e in enumerate(lst) if e[0] not in indexes]