値を持つタプルのリストを含む適切なデータ構造を探してい(hash, timestamp)
ます。基本的には、次の方法で使用したいと思います。
- データが入ってくると、それがデータ構造に既に存在するかどうかを確認します (タイムスタンプではなく、ハッシュの等価性)。
- そうである場合は、タイムスタンプを「今」に更新します
- そうでない場合は、タイムスタンプ「今」でセットに追加します
定期的に、特定のタイムスタンプよりも古いタプルのリストを削除して返したいと考えています (「期限切れ」になったときに他のさまざまな要素を更新する必要があります)。タイムスタンプは特定のものである必要はありません (UNIX タイムスタンプ、Pythondatetime
オブジェクト、またはその他の簡単に比較できるハッシュ/文字列にすることができます)。
これを使用して着信データを受信し、既に存在する場合は更新し、X 秒/分より古いデータを消去します。
複数のデータ構造も有効な提案になる可能性があります (最初は優先度キュー + セットを使用しましたが、優先度キューは常に値を更新するには最適ではありません)。
同じことを達成するための他のアプローチも歓迎されます。最終的な目標は、要素がいつ a) システムにとって新しいか、b) システムに既に存在するか、c) 有効期限が切れるかを追跡することです。