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に設定すると、辞書として定義できていますね。
Pythonをしっかり学びたい方向け
最後に、Pythonをしっかり学びたいという方向けにおすすめの学習ツールを紹介しておきます。
スッキリわかるPython入門 スッキリわかるシリーズ
そもそもPythonの書き方が分からないという方はこちら、安いし分かりやすいのでオススメです。
プログラミング言語 Python 3 入門
このコースで学べること
- Pythonの基礎(データ、制御フロー、関数、データ構造、モジュール、例外(エラー)、クラス、入力と出力、標準ライブラリ)
- ターミナルを使用したPythonの実行
- PyCharmを使用したPython ファイルの作成・デバッグ実行
Pythonの基礎の基礎が丁寧に開設されていて、Python初心者の方でもPythonへの理解が深まりやすいUdemyのコースです。
Pythonの仕組みを基礎からしっかりと理解しておきたい方にオススメです。
【プログラミング言語 Python 3 入門】をUdemyで見てみる
Pythonで作業の自動化・効率化
Pythonでのプログラミング学習中の方向けに、Noteでより詳細なプログラミングチュートリアルを配信しているので、そちらもチェックしてみてください( ・v・)/
では!