[Python] TypeError: 'set' object is not subscriptable の原因と対処法

2023年1月21日土曜日

Python

本記事では、TypeError: 'set' object is not subscriptableの原因と対処法をご紹介します。

アイキャッチ

原因

直訳すると、'set'オブジェクトは添字表記不可を意味します。

set型のオブジェクトに対してリスト(a[0])のようにアクセスした場合に発生するエラーです。 このエラーが発生する原因としては、以下の例が挙げられます。

  1. set型のオブジェクトに添字表記a[0]でアクセスしている

よくある原因

リスト型とset型を混同しているケースや、単純にTypoなどで発生します。 以下はよくある発生例です。

こちらからGoogle Colaboratoryでエラーを再現できます。
Open In Colab

my_set = {0, 1, 2}
my_list = [0, 1, 2]

print(type(my_list)) # <class 'list'>
my_list[0]

print(type(my_set)) # <class 'set'>
my_set[0]
# TypeError: 'set' object is not subscriptable

対処法

エラーが発生したオブジェクトの型を確認することで安全な実装となりますが、まずは単純なTypoがないか確認しましょう。

確認項目

  1. エラーが発生しているオブジェクトがset型ではないか?

AIで副業ならココから!

まずは無料会員登録

プロフィール

メーカーで研究開発を行う現役エンジニア
組み込み機器開発や機会学習モデル開発に従事しています

本ブログでは最新AI技術を中心にソースコード付きでご紹介します


Twitter

カテゴリ

このブログを検索

ブログ アーカイブ

TeDokology