Python で Object Is Not Subscriptable エラーを修正する

Haider Ali 2022年4月14日
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 番目の要素を表示し、添え字とインデックスのメソッドを使用しています。

著者: Haider Ali
Haider Ali avatar Haider Ali avatar

Haider specializes in technical writing. He has a solid background in computer science that allows him to create engaging, original, and compelling technical tutorials. In his free time, he enjoys adding new skills to his repertoire and watching Netflix.

LinkedIn

関連記事 - Python Error

関連記事 - Python Object