从只知道项目索引的列表中删除项目的最佳和最 Python 的方法是什么?
my_list = ['zero', 'one', 'two', 'three', 'four']
my_removal_indices = [0, 2, 4]
# what to do
my_list = ['one', 'three']
请注意以下内容:
my_list = [item for item in my_list if my_list.index(item) in my_removal_indices]
不起作用,因为 my_list
中的元素可能不是唯一的。
当然,当只是迭代时,my_list
的索引也会发生变化。
有没有比例如更好的方法?创建一个新的空列表并将所有想要的项目存储在那里,然后将其设置为 my_list
?
谢谢!
最佳答案
您可以使用 enumerate
来遍历您的列表,并使用相应的索引。然后根据您的删除列表检查这些索引。
>>> [val for idx, val in enumerate(my_list) if idx not in my_removal_indices]
['one', 'three']
如果索引列表很长,为了性能也可以切换到一个set
来加快in
检查
my_removal_indices = {0, 2, 4}
>>> [val for idx, val in enumerate(my_list) if idx not in my_removal_indices]
['one', 'three']
关于python - 删除多个列表元素,知道它们在 python 中的索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64352779/