从列表中删除项目,同时保留python3中的顺序

时间:2018-11-15 07:50:57

标签: python python-3.x list

如何从列表中删除项目,但保持其原始顺序? 使用remove()似乎弄乱了顺序。

比如说一个这样的列表:

['book', 'house', 'tree', 'ambulance', 'window', 'Dragonball', 'alfa']

如何在不弄乱顺序的情况下删除“书”和“树”一词?

2 个答案:

答案 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']