HOWTO · Python
Python で Object Is Not Subscriptable エラーを修正する
Python で object is not subscriptable のエラーを修正する方法
このページの内容
Python では、object is not subscriptable というエラーは自明のことです。Python でこのエラーに遭遇し、解決策を探している場合は、読み続けてください。
Python の object is not subscriptable エラーの修正
まず、このエラーの意味を理解する必要があり、subscriptable が何を意味するのかを知る必要があります。
下付き文字は、要素を識別するためのプログラミング言語の記号または数字です。ですから、object is not subscriptable ということは、そのデータ構造がこの機能を持っていないことが明らかです。
たとえば、次のコードを見てください。
# An integer
Number = 123
Number[1] # trying to get its element on its first subscript
上記のコードを実行すると、整数に複数の値がないため、エラーが発生します。したがって、整数で下付き文字を使用する必要はありません。さらにいくつかの例を見てみましょう。
# Set always has unique Elements
Set = {1, 2, 3}
# getting second index of set #wrong
Set[2]
セットをいくつかの値で初期化しました。リストや配列と間違えないでください。セットには添え字がありません。つまり、上記のコードでも同じエラーが発生します。
セットから単一の値を表示することはできません。ループを使用して設定値を出力すると、順序に従わないことがわかります。
その値を識別するインデックスはありません。次のコードの出力は、異なる順序の出力を提供します。
# Set always has unique Elements
Set = {1, 2, 4, 5, 38, 9, 88, 6, 10, 13, 12, 15, 11}
# getting second index of set
for i in Set:
print(i)
文字列またはリストに関しては、添え字を使用して各要素を識別できます。これは、単純な配列から値を出力して取得するようなものです。見てください。
# string variable
string = "Hello I am Python"
print(string[4])
出力:
o
上記のコードは正常に実行され、文字列の 5 番目のインデックス/添え字(0-4)に存在するため、出力は o になります。このオブジェクトは添字可能です。
# function which returns a list
def my_Func():
return list(range(0, 10))
# correct
print(my_Func()[3])
出力:
3
上記のコードには、サブスクリプト可能なリストを返す関数があります。ご覧のとおり、リストの 3 番目の要素を表示し、添え字とインデックスのメソッドを使用しています。