重複の可能性:
Pythonの効率的な双方向ハッシュテーブル?
私はPythonコードを解析するASTパーサーに取り組んでいます。まず、Pythonコードを。を呼び出してASTに変換しcompile
ます。
これを行う際には、インポートする呼び出しが2つある場合でも、同じインポートされたモジュールを2回コンパイルしないようにする必要があります。
現在、これら2つの呼び出しは同等であることがわかります。
import modname as mod
import modname as mod
mod
私は(この場合)にマップする辞書を維持していますmodname
。modname
私はこれを使用して、すでにインポートされているものを検出するだけでなく、将来のその他の簿記機能にも使用します。
現在、次の3つの呼び出しが同じモジュールをインポートしていることを検出できません。
import modname as mod
import modname as foo
import modname
2回目のコンパイルの前に、を使用してこのセットset
を格納およびチェックすることで、この問題を簡単に回避できることを知っています。ただし、これには線形空間の別のブロックが必要です。
辞書を線形パスして、キーが値にマップされているかどうかを確認することはできますが、それはdictを使用する目的に反します。modname
modname
modname
したがって、私の質問:「双方向dict
」のデータ構造が存在しますか?キーを値にマップし、その値をO(1)時間でも検索できるデータ構造はありますか?