Python 辞書はハッシュテーブルの例ですか? 質問する

Python 辞書はハッシュテーブルの例ですか? 質問する

Python の基本的なデータ構造の 1 つは辞書です。辞書を使用すると、任意のタイプの「値」を検索するための「キー」を記録できます。これは内部的にハッシュ テーブルとして実装されていますか? そうでない場合、それは何ですか?

ベストアンサー1

はい、ハッシュ マッピングまたはハッシュ テーブルです。Tim Peters が書いた Python の dict 実装の説明は、こちらで読むことができます。

そのため、リストのように「ハッシュ可能ではない」ものを辞書のキーとして使用することはできません。

>>> a = {}
>>> b = ['some', 'list']
>>> hash(b)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: list objects are unhashable
>>> a[b] = 'some'
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: list objects are unhashable

ハッシュ テーブルについてさらに詳しく読んだり、Python でハッシュ テーブルがどのように実装されているかなぜそのように実装されているかを確認したりできます。

おすすめ記事