【发布时间】:2021-03-30 05:49:30
【问题描述】:
我知道字典在查找键时速度很快,但如果让两个字典指向完全相同的对象但具有不同但相关的键以便您可以使用那些以不同方式查找元素的键。在我的应用程序中,查找速度比安排数据集的时间更重要。
例如:您有一个包含驾照信息的大型集合。您将信息存储在字典中,密钥是驾驶执照上各自的名称。您还创建了第二个字典,指向与密钥相同的对象,但以驾驶执照 ID 号作为密钥
class DL:
def __init__(self, name, id):
self.name = name
self.id = id
licenses = {DL('jon', 1), DL('joe', 2), DL('jack', 3), DL('jill', 4)}
byName = dict()
byID = dict()
for i in licenses:
byName[i.name] = i
byID[i.id] = i
print(byName)
print(byID)
【问题讨论】:
-
看看能否解决你的问题:stackoverflow.com/questions/11105115/…
-
@KenLee 这实际上只是两个字典...
-
这是一个权衡。是否值得取决于您的项目要求。
-
嗯,根据我的要求,我不知道是否值得。我想要尽可能快的查找,这提供了我认为但要付出什么代价。有多少 dict + 它的数据将是 dict。除了懒惰和方便之外,是什么阻止我对对象中的每个属性执行此操作。
-
不,这不是坏习惯,这很好。如果需要同步,请明智地将它们打包在一起。
标签: python python-3.x performance dictionary memory