我知道字典在查找一个键时很快,但是如果让两个字典指向相同的对象,但键不同但相关,那么使用这些键可以以不同的方式查找元素,这是一种浪费,特别是在内存方面。在我的应用程序中,查找速度比安排数据集的时间更重要
例:您有一个包含驾照信息的大集合。您将信息存储在词典中,密钥为驾驶执照上的各自名称。您还可以创建第二个字典,指向与密钥相同的对象,但使用驾照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)
从时间复杂度的角度来看,一对两字典不会实质性地影响算法的速度。它们仍然是hashmap,这意味着最坏的
O(N)
查找和平均的O(1)
查找阅读更多关于python字典时间复杂性的信息:https://wiki.python.org/moin/TimeComplexity
应该注意的是,Python具有针对整数和字符串的高度优化的哈希函数,因此,如果您发现自己编造了一些自定义的东西来支持单个字典,那么从性能角度来看,这可能是个坏主意
如果绝对性能对你来说很重要,那么你的低挂果实改善可能就在别处
相关问题 更多 >
编程相关推荐