是否有一种可以无缝组合字典(将嵌套字典或列表作为值)和堆的Python数据 struct ,从而允许根据嵌套 struct 中的特定值进行排序?
cache = {"key1": {"time": time1, "info": "key1 info"}, "key2": {"time": time2, "info": "key2 info"}, ...}
或者:
cache = {"key1": [time1, "key1 info"], "key2": [time2, "key2 info"], ...}
这里是time1
,time2
,...是插入或更新条目的时间.
目标是实现高效的缓存,判断键的存在,验证值的 fresh 度(随着时间的推移它变得过时),并在缓存满时删除最旧的键.字典应该通过使用嵌套键"time"或列表的第0个元素来支持堆操作.
考虑的当前选项:
- 从字典形成一个堆(缺点-昂贵的操作O(n^2)).
- 使用分开存储的堆和字典实现一个类(缺点是在堆和字典中同步数据的复杂性).
- 简单迭代O(N)中的字典.此选项因其简单性而备受青睐,但可能不是最佳 Select .
有没有更有效的解决方案或避免创建自定义数据 struct 的不同方法?