如何从列表中删除项目,但保持其原始顺序?
使用remove()
似乎弄乱了顺序。
比如说一个这样的列表:
['book', 'house', 'tree', 'ambulance', 'window', 'Dragonball', 'alfa']
如何在不弄乱顺序的情况下删除“书”和“树”一词?
答案 0 :(得分:3)
您可以只使用remove(),因为它不会更改列表顺序。
通常最好只创建一个新的对象项,如下所示:
item_list = ['book', 'house', 'tree', 'ambulance', 'window', 'Dragonball', 'alfa']
item_list = [e for e in item_list if e not in ('book', 'alfa')]
答案 1 :(得分:3)
您可能正在迭代列表,同时试图确定是否需要删除某些内容-您 从不 对其要插入/删除的列表进行迭代-灾难的秘诀。
相反,创建一个新列表:
a = ['book', 'house', 'tree', 'ambulance', 'window', 'Dragonball', 'alfa']
b = [e for e in a if e not in {"book","tree"}]
print(b)
输出:
['house', 'ambulance', 'window', 'Dragonball', 'alfa']