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)
上記のコードの出力は、次のようになります。
しかし、間違った要素にアクセスしようとすると、エラー メッセージが表示されることがあります。 このエラーが発生する状況を再現してみましょう。
たとえば、2つのインデックスを別々に渡すのではなく、両方の値を含む 1つのインデックスを渡そうとすると、エラーがスローされます。
nested_list = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
find_five = nested_list[1, 1]
print(find_five)
これにより、以下に示すようにエラーがスローされます。
以下に示すように、変数内のインデックスをタイプ 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)
上記のコードの出力を以下に示します。
このエラーを回避する最善の方法は、正しい型のインデックスで項目を呼び出すことです。 インデックスを変数に保存する場合は、以下に示すように整数として割り当てる必要があります。
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 の強力なデータ構造ですが、リストは整数を使用してのみインデックスを作成できることを覚えておくことが重要です。 TypeError: リスト インデックスはリストではなく整数である必要があります
エラーが発生した場合は、整数ではない値を使用してリストにアクセスしようとしています。
このエラーを解決するには、代わりに整数値を使用してください。
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 TypeError: Unhashable タイプ: リスト
- Python TypeError: 必要な位置引数が 1つありません
- TypeError を解決する: Python での文字列の書式設定中にすべての引数が変換されるわけではありません
- TypeError を解決する: Python では整数が必要です
- TypeError: STR ではなく、実数でなければなりません
関連記事 - Python Error
- AttributeError の解決: 'list' オブジェクト属性 'append' は読み取り専用です
- AttributeError の解決: Python で 'Nonetype' オブジェクトに属性 'Group' がありません
- AttributeError: 'generator' オブジェクトに Python の 'next' 属性がありません
- AttributeError: 'numpy.ndarray' オブジェクトに Python の 'Append' 属性がありません
- AttributeError: Int オブジェクトに属性がありません
- AttributeError: Python で 'Dict' オブジェクトに属性 'Append' がありません