我需要一个可以处理以下内容的数据结构:
date_from (datetime)
date_to (datetime)
value (float)
...我需要能够根据日期时间“查询”此数据结构(例如,在伪代码中: SELECT * FROM data_structure WHERE a_datetime >= date_from AND a_datetime <= date_to;
)。
如果此“查询”没有结果,我需要能够将新值插入到数据结构中。
执行此操作的最佳方法是什么? (我现在有点卡住了)
最佳答案
看看这个 SortedCollection Recipe 。它使用 bisect module并让您创建一个带键的集合。例如:
>>> 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')
可以帮助您创建时间段信息的缓存,二等分方法应该可以让您有效地访问日期键控信息。
关于python - 基于日期时间在 Python 中“查询”数据结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11224117/