我需要一个可以处理以下内容的数据结构:
date_from (datetime)
date_to (datetime)
value (float)
...我需要能够根据日期时间(例如伪代码:SELECT * FROM data_structure WHERE a_datetime >= date_from AND a_datetime <= date_to;
)'查询'此数据结构。
如果没有来自此'查询'的结果,我需要能够在数据结构中插入新值。
这样做的最佳方法是什么? (我现在有点卡住了)
答案 0 :(得分:2)
看看这个SortedCollection Recipe。它使用bisect module并允许您创建一个键控集合。 E.g:
>>> from SortedCollection import SortedCollection
>>> from operator import itemgetter
>>> s = SortedCollection(key=itemgetter(0))
>>> s.insert((1,2,'a'))
>>> s.insert((10,20,'b'))
>>> s.insert((20,30,'c'))
>>> s.find_le(10)
(10, 20, 'b')
可以帮助您创建时间段信息缓存,bisect方法可以让您有效地访问日期键控信息。