Solucione el error de tipo de Python: los índices de lista deben ser números enteros, no una lista

Rana Hasnain Khan 15 febrero 2024
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.

los índices de lista deben ser enteros, no enumerados en el primer ejemplo de Python

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.

los índices de la lista deben ser enteros, no enumerados en el primer ejemplo de error de Python

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.

los índices de la lista deben ser enteros, no enumerados en el segundo ejemplo de error de Python

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.

los índices de la lista deben ser enteros, no enumerados en la primera solución de error de Python

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 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

Artículo relacionado - Python TypeError

Artículo relacionado - Python Error