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

时间:2013-02-12 11:45:27

标签: python python-2.7

给定一个对象列表,其中每个对象都有一个名为x的属性,我想从列表中删除x属性包含值v的所有对象。

一种方法是使用列表理解:[item for item in mylist if item.x != v],但因为我的列表很小(通常小于10)。另一种方法是循环遍历列表并检查每个项目。

第三种方式是否同样快速甚至更快?

2 个答案:

答案 0 :(得分:1)

使用列表推导语法创建新列表。我认为你不能做得更快。你的清单很小也没关系,那就更好了。

答案 1 :(得分:1)

您还可以使用生成器filter功能。选择你认为最具可读性的东西;效率在这一点上并不重要(特别是如果你只处理几个元素的话)。