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 Recipeをご覧ください。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')

期間情報のキャッシュを作成するのに役立つ場合があります。bisect アプローチを使用すると、日付キーの情報に効率的にアクセスできます。

于 2012-06-27T11:04:06.833 に答える