我应该如何实现对集合中项目的快速查找?
class Person(object):
__all__ = dict()
def __init__(self, _id, name, age):
self._id = _id
self.name = name
self.age = age
self.__class__.__all__[_id] = self
假设我希望得到五个最年长的人。如果len(Person.__all__)
很大,并且我需要经常执行此操作,那么最佳做法是什么?目前我的代码运行大约需要 4 小时,我什至还没有输入整个数据集。
我目前的想法是我可以使用数据库来维护索引,但我的感觉是这会比将所有对象都保存在 ram 中要慢。(我可以轻松地将每个对象放入 ram 中)。
或者,我可以在 Python 中拥有某种基于自动排序列表的索引。因此,当我需要查找某个年龄的人时,我会查询该列表,查找 ID,然后用于Person.__all__
获取对象本身。
什么是最好的选择?