コンテンツへスキップ
Python例外エラー
TypeError: unhashable type

TypeError: ハッシュ不可能な型

辞書のキーや集合の要素など、ハッシュ可能 (イミュータブル) なオブジェクトが必要な箇所にミュータブルなオブジェクトが使用された。

python

このエラーの原因

リスト、dict、set などのミュータブルなオブジェクトを辞書のキーや集合の要素として使用しようとした。キーとして使用できるのはハッシュ可能 (イミュータブル) なオブジェクトのみ: 文字列、数値、タプル (ハッシュ可能な要素のもの)、frozenset。

修正方法

リストはタプルに変換します: tuple(my_list)。集合は frozenset に変換します: frozenset(my_set)。dict の場合は、items の frozenset を使うか、ハッシュ可能な表現に変換します。キーにはイミュータブルなデータ構造を使用します。

例

{[1, 2]: "value"}  # TypeError: unhashable type: 'list'
公式ドキュメント

関連するエラーコード