从列表中移除具有特定属性值的项

-1 投票
2 回答
1293 浏览
提问于 2025-04-17 15:36

假设你有一个物品列表,每个物品都有一个叫做 x 的属性。现在你想把所有 x 属性值等于 v 的物品从这个列表中删除。

一种方法是使用列表推导式,也就是用 [item for item in mylist if item.x != v] 这种写法。不过因为我的列表很小(通常少于10个物品),所以还有另一种方法,就是用循环逐个检查列表里的每个物品。

那么有没有第三种方法,速度一样快或者更快呢?

2 个回答

1

用列表推导的语法来创建一个新列表。我觉得没有比这个更快的方法了。即使你的列表很小,这样反而更好。

1

你也可以使用生成器或者filter函数。选择你觉得最容易理解的方式就好;在这个时候,效率其实并不是最重要的(特别是当你只处理几个元素的时候)。

撰写回答