Python での双方向ハッシュ テーブルの実装
Python の組み込み dict は、キーに基づいた効率的な検索を提供する非常に便利なデータ構造です。ただし、値からの逆引きが必要な場合が発生します。この記事では、双方向ハッシュ テーブルを実装する最も効率的な方法を検討し、既存のソリューションからインスピレーションを受け、特定の要件に対処するために変更された例を提供します。
実装
提示されたソリューション標準の Python の dict を拡張するカスタム クラスの bidict を使用します。これは、bidict が変更されるたびに自動的に更新される追加の逆辞書を維持します。この逆辞書は、その値が割り当てられているキーのリストに値をマップします。
重要なことに、既存のライブラリとは異なり、この実装では同じ値を持つ複数のキーが許可されます。この機能は、特定のシナリオでは非常に重要です。
使用法
bidict クラスは、次の主要なメソッドを使用します。
- bidict(args, kwargs) ): 標準辞書および逆辞書に格納されている引数とキーワード引数を受け入れるコンストラクター。
- bidict.__setitem__(key, value): キーを値に設定します。 key がすでに bidict にある場合は、逆引き辞書内の現在の値に関連付けられているキーのリストから key を削除します。次に、キーを両方のディクショナリの値に設定し、逆ディクショナリ内の値に関連付けられたキーのリストを更新します。
- bidict.__delitem__(key): bidict からキーを削除します。これは、キーに関連付けられた値を見つけて、それに応じて逆辞書を更新し、値に関連付けられたキーのリストからキーを削除します。 value のキーのリストが空になると、value は逆辞書から削除されます。
使用例
<code class="python">bd = bidict({'a': 1, 'b': 2}) print(bd.inverse) # {1: ['a'], 2: ['b']} bd['c'] = 1 print(bd.inverse) # {1: ['a', 'c'], 2: ['b']} del bd['c'] print(bd.inverse) # {1: ['a'], 2: ['b']}</code>
以上が同じ値を持つ複数のキーに対して Python で双方向ハッシュ テーブルを実装するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

PythonはゲームとGUI開発に優れています。 1)ゲーム開発は、2Dゲームの作成に適した図面、オーディオ、その他の機能を提供し、Pygameを使用します。 2)GUI開発は、TKINTERまたはPYQTを選択できます。 TKINTERはシンプルで使いやすく、PYQTは豊富な機能を備えており、専門能力開発に適しています。

Pythonは、データサイエンス、Web開発、自動化タスクに適していますが、Cはシステムプログラミング、ゲーム開発、組み込みシステムに適しています。 Pythonは、そのシンプルさと強力なエコシステムで知られていますが、Cは高性能および基礎となる制御機能で知られています。

2時間以内にPythonの基本的なプログラミングの概念とスキルを学ぶことができます。 1.変数とデータ型、2。マスターコントロールフロー(条件付きステートメントとループ)、3。機能の定義と使用を理解する4。

Pythonは、Web開発、データサイエンス、機械学習、自動化、スクリプトの分野で広く使用されています。 1)Web開発では、DjangoおよびFlask Frameworksが開発プロセスを簡素化します。 2)データサイエンスと機械学習の分野では、Numpy、Pandas、Scikit-Learn、Tensorflowライブラリが強力なサポートを提供します。 3)自動化とスクリプトの観点から、Pythonは自動テストやシステム管理などのタスクに適しています。

2時間以内にPythonの基本を学ぶことができます。 1。変数とデータ型を学習します。2。ステートメントやループの場合などのマスター制御構造、3。関数の定義と使用を理解します。これらは、簡単なPythonプログラムの作成を開始するのに役立ちます。

10時間以内にコンピューター初心者プログラミングの基本を教える方法は?コンピューター初心者にプログラミングの知識を教えるのに10時間しかない場合、何を教えることを選びますか...

fiddlereveryversings for the-middleの測定値を使用するときに検出されないようにする方法

Python 3.6のピクルスファイルのロードレポートエラー:modulenotFounderror:nomodulenamed ...


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

mPDF
mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

WebStorm Mac版
便利なJavaScript開発ツール

VSCode Windows 64 ビットのダウンロード
Microsoft によって発売された無料で強力な IDE エディター

EditPlus 中国語クラック版
サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

MantisBT
Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。
