このサイトは、Pythonや生成AIなどを学べるオンラインプログラミングスクール AI Academy Bootcampが運営しています。
TypeError: ‘set’ object is not subscriptable エラーの原因
まず、「TypeError: ‘set’ object is not subscriptable」はPythonのデータ型に関するエラーです。
「not subscriptable」は、添字不可という意味で解釈できますが、「subscript」は添字を意味し、「subscription」は添字表記を意味します。
エラーの内容を読むと、セット(set)は添字という概念ないので、添字表記ができないことを意味します。
つまり、setは要素を取り出せないということを意味します。
TypeError: ‘○○○’ object is not subscriptable の ‘○○○’ 部分には、添字表記に対応していないintやfloatの場合にも添字表記を用いるとエラーになってしまいます。
TypeError: ‘set’ object is not subscriptable エラーの解決策
このエラーが発生した場合、まずはエラーの内容を見て、どのようなエラーが出たか理解しましょう。
また、今回発生したエラーに対応するデータ型を調べます。このエラーの場合「set」だと特定できます。
setの場合、リストや辞書と違って添字表記できないため、set型として定義していないか(本当はリスト型として定義したつもりが、set型になっていた)など確認しましょう。
[]と{}を間違えないように定義しよう
Pythonではデータ型を作成する際に、[]
を用いることでリスト型として定義出来ます。
li_sample = [10, 50, 100]
print(type(li_sample))
出力結果
<class 'list'>
一方で、{}
を用いると「集合型(セット型)」(AI Academyに無料登録して頂きましたら購読可能です)と呼ばれるデータ型になってしまいます。
set_sample = {10, 50, 100}
print(type(set_sample))
出力結果
<class 'set'>
このように、変数を定義する際に[]
と{}
を間違えてデータを定義してしまうとその後のプログラムで予期せぬバグがうまれる可能性があります。そのため、リスト型を定義したい場合には[]
を用いてください。集合型(セット型)の詳細が知りたい方は、AI Academyに無料登録のうえ、こちらのテキストを読んでみてください。
🎁ちょっとひと息 ! 業務や学習に役立つライブラリーをプレゼント !
オンラインプログラミングスクールのAI Academy Bootcamp LINE公式のライブラリーでは無料動画、講座、最新技術資料など、学習や業務に役立つ秀逸な教材や実践的なリソースを豊富に取り揃えています!毎週新しいコンテンツも更新中です。LINE友だち登録でプレゼントします。ぜひご活用ください!
そもそも set型とは?
セット(set、集合)型とは、集合を扱うデータ型です。
セット型の特徴として、リスト型などと表記が似ているデータ型ではありますが、以下のような特徴を持ちます。
・重複した値を格納できない
・添え字やキーなどの概念がなくユニークな要素である
・要素の順序を保持しない
この特徴を活かし、セット型では集合、積集合、差集合などの集合演算を行うことができる点や、種類を管理するのに適しています。
Pythonをもっと理解したい方へ
AI Academy Bootcamp ではAI・データサイエンス、機械学習の実践力を高める全4コース40時間以上の動画が見放題!AIの学習に必須のPythonの学習から始まり、データサイエンス・機械学習など、目的に応じた幅広い分野をカバーしています。
無料講義や無料動画を試して頂いて、ご受講をご検討頂けましたら幸いです。
[…] 詳細はこちらの記事をご確認ください。 […]