仮想サーファーの波乗り

仮想化エンジニアの日常

プログラミング・SNS分析・仮想通貨・自動化などに関してよく書く雑記ブログ

【Pythonエラー解決】「TypeError: unhashable type: xxx」

TypeError: unhashable type: 'list'

上記のようなエラーが出た時の対処法。

自分で定義したオブジェクトを辞書のkeyに設定しようとすると、ハッシュ化できないからエラーになる。 intやstrのようなハッシュ化可能なオブジェクトをkeyに設定する必要がある。

test.py

list = ['a', 'b', 'c']
dictionary = {}
dictionary[list] = 'test'

上のファイルを実行すると...

$ python test.py

TypeError: unhashable type: 'list'

辞書のkeyがlist型だとハッシュ化できないと怒られる。


数値(int)やstr(文字列)を辞書のkeyに設定し直します。

list = ['a', 'b', 'c']
dictionary = {}
test = 'test'
test_int = 111
dictionary[test] = list
dictionary[test_int] = list

print(dictionary)

改めて実行してみると...

$ python test.py

{'test': ['a', 'b', 'c'], 111: ['a', 'b', 'c']}

数値や文字列を辞書のkeyに設定すると、辞書として定義できていますね。