Python の基盤テクノロジーが明らかに: ハッシュ テーブルの実装方法

WBOY
リリース: 2023-11-08 11:53:00
オリジナル
1236 人が閲覧しました

Python の基盤テクノロジーが明らかに: ハッシュ テーブルの実装方法

Python の基盤テクノロジーを明らかにする: ハッシュ テーブルの実装方法

ハッシュ テーブルは、コンピューター分野では非常に一般的で重要なデータ構造です。多数のキーと値のペアを保存および検索します。 Pythonでは辞書を使ってハッシュテーブルを使うことができますが、その実装の詳細を深く理解している人はほとんどいません。この記事では、Python でのハッシュ テーブルの基礎となる実装テクノロジを明らかにし、具体的なコード例を示します。

ハッシュ テーブルの中心的な考え方は、単にキーを順番に保存するのではなく、ハッシュ関数を通じてキーを固定サイズの配列にマップすることです。これにより、検索が大幅に高速化されます。以下では、ハッシュ テーブルの実装をステップごとに紹介します。

  1. ハッシュ関数
    ハッシュ関数は、キーを配列内のインデックス位置にマップする、ハッシュ テーブルの非常に重要な部分です。優れたハッシュ関数は、衝突の可能性を減らすために、キーを配列内の異なる位置に均等にマッピングできる必要があります。 Python では、hash() 関数を使用してハッシュ値を生成できますが、生成される値は長すぎるため、通常はモジュロ演算を実行して配列のサイズに適合させる必要があります。

以下は単純なハッシュ関数の例です:

def hash_func(key, size):
    return hash(key) % size
ログイン後にコピー
  1. ハッシュ テーブルの実装
    Python では、ハッシュ テーブルは辞書 (dict) を通じて作成されます。 )達成すべき目標。ディクショナリ オブジェクトは、内部でハッシュ テーブルを使用してキーと値のペアを保存します。最も単純なハッシュ テーブルは、配列とリンク リストを使用して実装できます。

最初に、配列とリンク リストを含むハッシュ テーブル オブジェクトを定義します:

class HashTable:
    def __init__(self, size):
        self.size = size
        self.table = [[] for _ in range(size)]
ログイン後にコピー

次に、挿入メソッドと検索メソッドを定義します:

    def insert(self, key, value):
        index = hash_func(key, self.size)
        for item in self.table[index]:
            if item[0] == key:
                item[1] = value
                return
        self.table[index].append([key, value])

    def get(self, key):
        index = hash_func(key, self.size)
        for item in self.table[index]:
            if item[0] == key:
                return item[1]
        raise KeyError(key)
ログイン後にコピー

In挿入するときは、まずハッシュ関数を通じてキーのインデックスを取得し、次にキーがリンク リストのインデックス位置にすでに存在するかどうかを確認します。存在する場合は値を更新し、存在しない場合はリンク リストの末尾に新しいキーと値のペアを挿入します。

検索時には、ハッシュ関数を通じてキーのインデックスも取得し、リンクされたリストのインデックス位置で線形検索を実行します。対応するキーと値のペアが見つかった場合は値が返され、それ以外の場合は KeyError 例外がスローされます。

  1. ハッシュ テーブルの使用
    これで、実装したハッシュ テーブルを使用できるようになります。以下は簡単な例です:
hash_table = HashTable(10)
hash_table.insert("name", "Tom")
hash_table.insert("age", 20)
hash_table.insert("gender", "male")

print(hash_table.get("name"))  # 输出:Tom
print(hash_table.get("age"))  # 输出:20
print(hash_table.get("gender"))  # 输出:male
ログイン後にコピー
  1. 概要
    この記事では、Python でのハッシュ テーブルの基礎となる実装テクノロジを紹介し、具体的なコード例を示します。ハッシュ テーブルは、一定時間での挿入および検索操作を可能にする効率的なデータ構造です。ハッシュ テーブルの実装原理と関連テクノロジをマスターすると、Python の辞書オブジェクトをより深く理解し、使用できるようになります。

この記事が、ハッシュ テーブルの基本的な実装を理解するのに役立つことを願っています。ご質問やご提案がございましたら、お気軽にお問い合わせください。

以上がPython の基盤テクノロジーが明らかに: ハッシュ テーブルの実装方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート