【发布时间】:2015-09-09 23:21:27
【问题描述】:
我有一个具有两个值 x 和 y 的类对象列表。这是我当前从列表中获取单个对象的代码:
for object in object_list:
if object.x == 10 and object.y == 10:
current_object = object
break
然后我可以通过引用 current_object 对对象进行操作。但是,我的问题是该列表包含 2000 个类对象条目,我担心像这样遍历列表直到找到所需的对象会非常低效。
有没有更有效的方法来获取我请求的对象?
【问题讨论】:
-
您考虑过使用dictionaries 吗?它可以满足您的需求吗?
-
使用字典,其键是每个对应对象的对(元组)
x和y。由于字典比列表具有更好的搜索时间复杂度... -
考虑为
dict再次投票;具体来说,映射{(foo.x, foo.y): foo, ...}。另外,不要为自己的对象命名object...
标签: python list class python-3.x