1

我需要一个可以处理以下内容的数据结构:

date_from (datetime)
date_to (datetime)
value (float)

...并且我需要能够基于日期时间“查询”这个数据结构(例如在伪代码中:)SELECT * FROM data_structure WHERE a_datetime >= date_from AND a_datetime <= date_to;

如果这个“查询”没有结果,我需要能够在数据结构中插入一个新值。

这样做的最佳方法是什么?(我现在有点卡住了)

4

1 回答 1

2

看看这个SortedCollection 食谱。它使用bisect 模块,让您创建一个键控集合。例如:

>>> 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')

可以帮助您创建时间段信息的缓存,二分法应该让您有效地访问您的日期键控信息。

于 2012-06-27T11:04:06.833 回答