[エラー解決]TypeError: list indices must be integers or slices, not str

TypeError: list indices must be integers or slices, not strというエラーの解決方法

先日プログラムを作成していた時、今回のエラー(TypeError: list indices must be integers or slices, not str)が発生しました。

エラーの理由と解決方法を説明します。

エラー画面から分かること

このようなコードを書いたときエラーになりました。

リストの要素を出力したいのにエラーになってしまったのです!

typeerrorとなったコードの例

ここから分かること:

  • 4行目が原因
  • 具体的にどの部分かseason_list[i]の部分ということが色付きで示されている

エラー理由と修正方法

上記で得たヒントを元に修正したコードがこちら。

print(season=season_list[i])と指定していた4行目を、print(i)とインデックスを直接指定すると無事解決しました!

リストの要素はここでいう”春”,”夏”,”秋”,”冬”という文字列。

これらを取得したいわけですが、

エラーメッセージによると

「リストの要素(文字列)を代入しようとしているけど、リストにはインデックス(整数)が必要」だったのです。

エラーになった理由は、list[i]と指定すると、iが文字列となってしまっていたのが原因でした。

要素(i)を直接指定することで無事解決しました。

ABOUT US
中野友梨
旅行業の会社を運営。
慶応義塾大学卒

書類作成、確認作業などに追われる日々の仕事。
一生懸命やっているつもりだった。
計算ミス、手配ミスにヒヤヒヤする日々。
仕事の効率をなんとかしなけらばいけないと思っていたけど、 どうしたらよいのか分からなかった。
Pythonの世界なんて、全く知らなかった。
そんな私がPythonで仕事が効率化されることによって、公私ともに大きく 変わるとは、夢にも思っていなかった..。

業務効率化のためにPythonを始めたことがきっかけで、Pythonにはまりました。(個人利用レベル)
詳細はこちら

労働時間が大きく削減され、仕事が大カイゼンされて自由な時間も生まれました。
私のした素晴らしい経験を共有したい、仕事の効率が悪いけど、どうにかしたいという悩みを持った人々に向けて、 Pythonがいいよ、と教えてあげたい。
このブログでは、私が経験したエラー解決や迷い所、Pythonの活用方法をお伝えします。