Solucione el error de tipo de Python: los índices de lista deben ser números enteros, no una lista
Presentaremos una lista anidada y el error común al que se enfrentan muchos programadores al intentar acceder a elementos de ellos con ejemplos en Python.
Solucione el Error de tipo: los índices de la lista deben ser números enteros, no una lista
en Python
Las listas son uno de los tipos de datos más utilizados y versátiles de Python. Las listas se pueden utilizar en una variedad de aplicaciones.
Una lista anidada contiene elementos que contienen una lista dentro de ellos. También se conoce como matriz anidada que se utiliza para almacenar, organizar y manipular datos multidimensionales.
A continuación se muestra un ejemplo de una lista anidada en Python.
nested_list = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
Este es un error común cuando se trabaja con listas anidadas. Al acceder a un elemento en una lista anidada, debemos especificar sus índices dos veces.
El primero será para la lista exterior y el segundo para la lista interior.
Intentemos acceder a 5 del ejemplo anterior usando Python, como se muestra a continuación.
nested_list = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
find_five = nested_list[1][1]
print(find_five)
La salida del código anterior será como se muestra a continuación.
Pero si intentamos acceder a un elemento de forma incorrecta, podemos obtener el mensaje de error. Intentemos recrear situaciones en las que puede ocurrir este error.
Por ejemplo, si intentamos pasar un índice con ambos valores en lugar de pasar dos índices por separado, arrojará un error.
nested_list = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
find_five = nested_list[1, 1]
print(find_five)
Esto arrojará el error como se muestra a continuación.
Puede haber una situación más en la que podamos obtener el mismo error cuando hayamos guardado los índices dentro de una variable incorrectamente como una lista en lugar de escribir int
, como se muestra a continuación.
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)
La salida del código anterior se muestra a continuación.
La mejor manera de evitar este error es llamando elementos por índices de tipos correctos. Si almacena los índices en variables, debe asignarlos como números enteros, como se muestra a continuación.
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)
Asignar los valores de los índices como un tipo int
nunca arrojará el error. El código anterior se ejecutará como se muestra a continuación.
En conclusión, las listas anidadas son una estructura de datos poderosa en Python, pero es importante recordar que las listas solo se pueden indexar usando números enteros. Si nos encontramos con el error TypeError: list indices must be integers, not list
, estamos intentando acceder a una lista usando un valor que no es un número entero.
Para resolver este error, utilice un valor entero en su lugar.
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.
LinkedInArtículo relacionado - Python TypeError
- Python TypeError: falta 1 argumento posicional requerido
- Python TypeError: Unhashable Tipo: Lista
- Resuelva el TypeError: no todos los argumentos se convirtieron durante el formato de cadena en Python
- Resuelva el TypeError: se requiere un número entero en Python
- TypeError: debe ser un número real, no STR
Artículo relacionado - Python Error
- Administrar fallas de segmentación en Python
- Archivo <Stdin>, Línea 1, en <Módulo> Error en Python
- Arreglar AttributeError: el objeto 'generador' no tiene atributo 'siguiente' en Python
- Arreglar el comando cl.exe falló: no existe tal archivo o directorio en Windows
- Arreglar NameError: la variable no está definida en Python
- Arreglar Socket.Gaierror: [Errno 8] Nodename ni Servname proporcionado, o desconocido en Python