我有一个Python的datetime时间戳和大字典(指数)键进行时间戳和值是我感兴趣的一些其他信息Python的 - 定位最近的时间戳
我需要找到的日期时间(尽可能高效的索引中最接近时间戳的键)。
在我做类似的时刻:
for timestamp in timestamps:
closestTimestamp = min(index,key=lambda datetime : abs(timestamp - datetime))
其工作原理,但过长需要 - 我的索引dict有上百万的价值观,和我做搜索数千次。我对数据结构等方面很灵活 - 时间戳大致是连续的,所以我从第一个时间戳到最后一个时间戳。同样,我加载到字典中的文本文件中的时间戳也是顺序的。
任何想法的优化将不胜感激。
是大字典相对静态,还是你经常添加和删除条目? –
字典实际上完全是静态的。 – Caligari
非常感谢所有有用的答案。我已经对这些建议进行了一些改进,看起来像我一定能够解决我的问题,速度的提高是巨大的。现在是家庭时间,所以明天我会多一点戏剧,并更新我的最终实施。 – Caligari