当只知道列表项的索引时,最好和最符合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
的答案可能是您想要的。但是,由于您说过“是否有比创建一个新的空列表并将所有所需项目存储在其中,然后将其设置为mylist更好的方法”,那么这本质上就是这些答案正在做的事情。根据您的用例,我怀疑这不是必要的,但您可以使用链接列表而不是常规列表来避免重新创建整个列表。 - Dan