Python の基盤テクノロジーを明らかにする: ハッシュ テーブルの実装方法
ハッシュ テーブルは、コンピューター分野では非常に一般的で重要なデータ構造です。多数のキーと値のペアを保存および検索します。 Pythonでは辞書を使ってハッシュテーブルを使うことができますが、その実装の詳細を深く理解している人はほとんどいません。この記事では、Python でのハッシュ テーブルの基礎となる実装テクノロジを明らかにし、具体的なコード例を示します。
ハッシュ テーブルの中心的な考え方は、単にキーを順番に保存するのではなく、ハッシュ関数を通じてキーを固定サイズの配列にマップすることです。これにより、検索が大幅に高速化されます。以下では、ハッシュ テーブルの実装をステップごとに紹介します。
以下は単純なハッシュ関数の例です:
def hash_func(key, size): return hash(key) % size
最初に、配列とリンク リストを含むハッシュ テーブル オブジェクトを定義します:
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 例外がスローされます。
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
この記事が、ハッシュ テーブルの基本的な実装を理解するのに役立つことを願っています。ご質問やご提案がございましたら、お気軽にお問い合わせください。
以上がPython の基盤テクノロジーが明らかに: ハッシュ テーブルの実装方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。