Python TypeError: List Indices Must Be Integers, Not List を修正する

Rana Hasnain Khan 2024年2月15日
Python TypeError: List Indices Must Be Integers, Not List を修正する

ネストされたリストと、Python の例を使用して、ネストされたリストから要素にアクセスしようとするときに多くのプログラマーが直面する一般的なエラーを紹介します。

Python の TypeError: リスト インデックスは整数である必要があります。リストではありません を修正する

リストは、Python で最も一般的に使用され、用途の広いデータ型の 1つです。 リストはさまざまなアプリケーションで使用できます。

ネストされたリストには、内部にリストを含む要素が含まれます。 これは、多次元データの格納、整理、および操作に使用されるネストされた配列としても知られています。

Python のネストされたリストの例を以下に示します。

nested_list = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]

これは、ネストされたリストを操作するときによくあるエラーです。 ネストされたリスト内の項目にアクセスする場合、そのインデックスを 2 回指定する必要があります。

1つ目は外側のリスト用で、2つ目は内側のリスト用です。

以下に示すように、Python を使用して上記の例から 5 にアクセスしてみましょう。

nested_list = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
find_five = nested_list[1][1]
print(find_five)

上記のコードの出力は、次のようになります。

リスト インデックスは整数である必要があります。Python の最初の例ではリストではありません

しかし、間違った要素にアクセスしようとすると、エラー メッセージが表示されることがあります。 このエラーが発生する状況を再現してみましょう。

たとえば、2つのインデックスを別々に渡すのではなく、両方の値を含む 1つのインデックスを渡そうとすると、エラーがスローされます。

nested_list = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
find_five = nested_list[1, 1]
print(find_five)

これにより、以下に示すようにエラーがスローされます。

リスト インデックスは整数である必要があります。Python エラーの最初の例ではリストではありません

以下に示すように、変数内のインデックスをタイプ int ではなくリストとして誤って保存した場合、同じエラーが発生する可能性がある別の状況が発生する可能性があります。

nested_list = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
indice_one = [1]
indice_two = [2]
find_six = nested_list[indice_one][indice_two]
print(find_six)

上記のコードの出力を以下に示します。

リスト インデックスは整数である必要があります。Python エラーの 2 番目の例ではリストではありません

このエラーを回避する最善の方法は、正しい型のインデックスで項目を呼び出すことです。 インデックスを変数に保存する場合は、以下に示すように整数として割り当てる必要があります。

nested_list = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
indice_one = 1
indice_two = 2
find_six = nested_list[indice_one][indice_two]
print(find_six)

インデックスの値を int 型として割り当てても、エラーがスローされることはありません。 上記のコードは、以下に示すように実行されます。

リスト インデックスは整数である必要があります。Python エラーの最初のソリューションのリストではありません

結論として、ネストされたリストは Python の強力なデータ構造ですが、リストは整数を使用してのみインデックスを作成できることを覚えておくことが重要です。 TypeError: リスト インデックスはリストではなく整数である必要があります エラーが発生した場合は、整数ではない値を使用してリストにアクセスしようとしています。

このエラーを解決するには、代わりに整数値を使用してください。

Rana Hasnain Khan avatar Rana Hasnain Khan avatar

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 TypeError

関連記事 - Python Error