我有一个对象的列表或数组(python中正确的术语是什么?)。 使所有对象与条件匹配的最有效方法是什么?
我可以遍历列表并检查每个元素,但这看起来效率不高。
objects = []
for object in list:
if object.value == "123":
objects.add(object)
答案 0 :(得分:6)
这是最简单的方法:
objects = [x for x in someList if x.value == 123]
如果您正在寻找更快的解决方案,您必须告诉我们有关您的对象以及如何构建源列表的更多信息。例如,如果相关属性在对象中是唯一的,则使用dict
而不是list
可以获得更好的性能。另一种选择是保持列表排序并使用bisect
而不是线性搜索。但要注意,当列表变得非常大时,这些优化工作才有意义,如果你的元素少于500个,只需使用理解并停止担心。
答案 1 :(得分:2)