IndexError: Python の範囲外のタプル インデックス
この記事では、エラー IndexError: tuple index out of range
が発生する理由と、例を使用して Python でエラーを解決する方法を示します。
Python の IndexError: タプル インデックスが範囲外です
エラーに入る前に、タプルとは何かを理解する必要があります。 タプルは、括弧で囲まれ、コンマで区切られた、順序付けられた要素のコレクションです。
タプルの要素を変更することはできません。 したがって、それらは不変要素
としても知られています。
タプルを使用しているときに直面する最も一般的な問題は、同じエラー、Index out of range
です。 このエラーは、存在しないタプル内のインデックスにアクセスしようとして、エラーが返されることがあるためです。 このエラーの背後には、主に 2つの理由が考えられます。
たとえば、長さが 7
のタプルがあり、このタプルの最後のインデックスを呼び出したい場合、6
で呼び出す代わりに、7
と呼びます。 配列と同様に、タプルも 0
から始まるため、tuple index out of range
エラーが返されます。
2 番目の理由は、タプル構文を使用して要素にアクセスしようとすると、要素がタプルに格納されないことです。 代わりに、配列または変数に格納されます。 同じエラーが返される可能性があります。
これらの状況を回避するには、タプルがあり、タプルの範囲内の要素にアクセスしようとしていることを確認する必要があります。
以下に示すように、果物のタプルを作成し、このタプルの最後のインデックスにアクセスしようとする例を見てみましょう。
fruits_tuple = ("banana", "apple", "orange", "guava")
last_fruit = fruits_tuple[len(fruits_tuple) - 1]
print(last_fruit)
上記のコードでわかるように、4つの果物の名前で構成されるタプルを作成しました。 タプルから最後の要素を呼び出すとき、タプルの長さに関係なくタプルの最後の要素を取得できるように、タプルの長さを取得する len()
関数を使用し、そこから 1 を減算しました。 タプル。
上記のコードの出力を以下に示します。
タプルの最後の要素を取得する別の方法は、以下に示すように、負のインデックスを使用することです。
fruits_tuple = ("banana", "apple", "orange", "guava")
last_fruit = fruits_tuple[-1]
print(last_fruit)
出力:
エラーが発生せず、お客様にとって有益な重要なデータが失われないようにする別の方法があります。 以下に示すように、常に try-except
ステートメントを使用することをお勧めします。
fruits_tuple = ("banana", "apple", "orange", "guava")
try:
last_fruit = fruits_tuple[5]
except IndexError:
print("Index out of range.")
try-except
ステートメントを使用すると、エラーが発生した場合でも、アプリケーションがクラッシュしたり動作を停止したりしないようにすることができます。 代わりに、except
ステートメントを使用して、ログにエラーを表示または保存できます。
上記のコードの結果を以下に示します。
上記の例からわかるように、5
を使用してタプルの 6 番目のインデックスを呼び出そうとしましたが、コードはアプリケーションをクラッシュまたは停止する代わりにコードを出力します。
このようにして、index out of range
エラーが発生した場合、それは except
ブロックによってキャッチされ、プログラムに適した方法で処理できます。
要素を変数から呼び出しているのかタプルから呼び出しているのかわからないという 2 番目の問題の解決策は、Python の type()
関数と if-else
ステートメントを使用することです。
変数の型がタプルの場合、関数が実行されます。 それ以外の場合は、以下に示すように、別の関数を実行します。
fruits_tuple = ("banana", "apple", "orange", "guava")
if type(fruits_tuple) == tuple:
print(fruits_tuple[2])
else:
print("Variable is not a tuple.")
上記のコードの出力を以下に示します。
結論として、タプルの範囲外のインデックスを使用してタプルの要素にアクセスしようとすると、タプル インデックスが範囲外です
というエラーが発生します。
タプルの長さに慣れていない場合は、len()
関数を使用することが重要です。また、try-except
ブロックを使用して、エラーが発生する前にエラーをキャッチし、変数の型チェックを使用して、インデックスが正しいことを確認することもできます。 このエラーを回避するために、アクセスしようとしているのはタプルの範囲内であり、変数はそれぞれ tuple
型です。
Rana is a computer science graduate passionate about helping people to build and diagnose scalable web application problems and problems developers face across the full-stack.
LinkedIn関連記事 - Python Error
- AttributeError の解決: 'list' オブジェクト属性 'append' は読み取り専用です
- AttributeError の解決: Python で 'Nonetype' オブジェクトに属性 'Group' がありません
- AttributeError: 'generator' オブジェクトに Python の 'next' 属性がありません
- AttributeError: 'numpy.ndarray' オブジェクトに Python の 'Append' 属性がありません
- AttributeError: Int オブジェクトに属性がありません
- AttributeError: Python で 'Dict' オブジェクトに属性 'Append' がありません