Bidict クラスによる双方向ハッシュ テーブルの実装
双方向ハッシュ テーブルは、同じデータ内のキーと値の両方でインデックスを付ける機能を提供します構造。 Python のネイティブ辞書は、一方向のマッピングには貴重なデータ構造ですが、双方向の検索となると不十分です。この記事では、Python で双方向ハッシュ テーブルを実装する効率的な方法を紹介します。
実装の詳細
実装の中心となるのは、Python の標準辞書を拡張する bidict クラスです。 。このクラスは 2 つの辞書を維持します。1 つは標準のキーと値のマッピング用で、もう 1 つは値とキーのマッピング用の逆辞書です。
主な機能
bidict クラスが提供するものいくつかの注目すべき機能:
使用例
その機能を実証するために、bidict を作成しましょう
<code class="python">import numpy as np bd = bidict(zip(['a', 'b'], np.random.randint(2, size=2))) print(bd) # {'a': 1, 'b': 0} print(bd.inverse) # {1: ['a'], 0: ['b']}</code>
キー 'a' の値を変更できます:
<code class="python">bd['a'] = 0 print(bd) # {'b': 0, 'a': 0} print(bd.inverse) # {0: ['b', 'a']}</code>
変更を反映するために逆引き辞書が自動的に更新されることに注意してください。辞書から項目を削除することもできます。
<code class="python">del bd['a'] print(bd) # {'b': 0} print(bd.inverse) # {0: ['b']}</code>
ここでも、逆辞書は削除にシームレスに調整します。
結論として、bidict クラスは双方向の効率的で便利な実装を提供します。 Python のハッシュ テーブル。自動更新の逆ディレクトリ、同じ値を持つ複数のキーのサポート、定数時間ルックアップを提供します。
以上がPython で双方向ハッシュ テーブルを実装するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。