给定一个对象列表,其中每个对象都有一个名为x
的属性,我想从列表中删除x
属性包含值v
的所有对象。
一种方法是使用列表理解:[item for item in mylist if item.x != v]
,但因为我的列表很小(通常小于10)。另一种方法是循环遍历列表并检查每个项目。
第三种方式是否同样快速甚至更快?
答案 0 :(得分:1)
使用列表推导语法创建新列表。我认为你不能做得更快。你的清单很小也没关系,那就更好了。
答案 1 :(得分:1)
您还可以使用生成器或filter
功能。选择你认为最具可读性的东西;效率在这一点上并不重要(特别是如果你只处理几个元素的话)。