先日プログラムを作成していた時、今回のエラー(TypeError: list indices must be integers or slices, not str)が発生しました。
エラーの理由と解決方法を説明します。
エラー画面から分かること
このようなコードを書いたときエラーになりました。
リストの要素を出力したいのにエラーになってしまったのです!
ここから分かること:
- 4行目が原因
- 具体的にどの部分か→season_list[i]の部分ということが色付きで示されている
エラー理由と修正方法
上記で得たヒントを元に修正したコードがこちら。
print(season=season_list[i])と指定していた4行目を、print(i)とインデックスを直接指定すると無事解決しました!
リストの要素はここでいう”春”,”夏”,”秋”,”冬”という文字列。
これらを取得したいわけですが、
エラーメッセージによると
「リストの要素(文字列)を代入しようとしているけど、リストにはインデックス(整数)が必要」だったのです。
エラーになった理由は、list[i]と指定すると、iが文字列となってしまっていたのが原因でした。
要素(i)を直接指定することで無事解決しました。