IndexError: índice de tupla fuera de rango en Python

Rana Hasnain Khan 15 febrero 2024
IndexError: índice de tupla fuera de rango en Python

En este artículo, demostraremos por qué ocurre el error IndexError: índice de tupla fuera de rango y cómo podemos resolverlo en Python con la ayuda de ejemplos.

IndexError: índice de tupla fuera de rango en Python

Antes de entrar en el error, debemos entender qué es una tupla. Una tupla es una colección de elementos ordenados encerrados entre paréntesis y separados por comas.

No podemos cambiar los elementos en la tupla. De ahí que también se les conozca como elementos inmutables.

El problema más común al que nos enfrentamos al trabajar con tuplas es el mismo error, Índice fuera de rango. Este error se debe a que a veces intentamos acceder al índice dentro de la tupla que no existe, devolviendo el error. Puede haber dos razones principales detrás de este error.

Por ejemplo, si tenemos una tupla cuya longitud es 7 y queremos llamar al último índice de esa tupla, en lugar de llamar con 6, la llamamos 7. Devolverá el error índice de tupla fuera de rango porque, al igual que los arreglos, las tuplas también comienzan desde 0.

La segunda razón es que si intentamos acceder a los elementos usando la sintaxis de tupla, los elementos no se almacenan en una tupla; en cambio, se almacenan en una matriz o una variable. Puede devolver el mismo error.

Para evitar estas situaciones, debemos asegurarnos de tener una tupla y de intentar acceder a los elementos dentro del rango de tuplas.

Veamos un ejemplo en el que crearemos una tupla de frutas e intentaremos acceder al último índice de esta tupla, como se muestra a continuación.

fruits_tuple = ("banana", "apple", "orange", "guava")
last_fruit = fruits_tuple[len(fruits_tuple) - 1]
print(last_fruit)

Como podemos ver en el código anterior, hemos creado una tupla que consta del nombre de 4 frutas. Al llamar al último elemento de nuestra tupla, hemos usado la función len() que nos dará la longitud de la tupla y le restamos 1 para que podamos obtener el último elemento de la tupla sin importar la longitud de la tupla. tupla

La salida del código anterior se muestra a continuación.

obteniendo el último elemento de tupla usando len en Python

Otro método para obtener el último elemento de una tupla es usar el índice negativo, como se muestra a continuación.

fruits_tuple = ("banana", "apple", "orange", "guava")
last_fruit = fruits_tuple[-1]
print(last_fruit)

Producción:

obteniendo el último elemento de tupla usando len en Python

Hay otra manera de asegurarse de que nunca recibamos el error y perdamos los datos importantes que podrían beneficiarlo. La mejor práctica es usar siempre declaraciones try-except, como se muestra a continuación.

fruits_tuple = ("banana", "apple", "orange", "guava")
try:
    last_fruit = fruits_tuple[5]
except IndexError:
    print("Index out of range.")

Usando las declaraciones try-except, podemos asegurarnos de que si hay algún error, nuestra aplicación no se bloquee o deje de funcionar. En su lugar, podemos mostrar o almacenar el error en el registro utilizando la instrucción excepto.

El resultado del código anterior se muestra a continuación.

obteniendo el último elemento de la tupla usando las declaraciones try except en Python

Como se ve en el ejemplo anterior, intentamos llamar al sexto índice de una tupla usando 5, y nuestro código genera el código en lugar de fallar o detener la aplicación.

De esta manera, si se genera un error de índice fuera de rango, será capturado por el bloque excepto, y podemos manejarlo de una manera apropiada para nuestro programa.

La solución para el segundo problema en el que no estamos seguros de si estamos llamando a un elemento desde una variable o desde una tupla es usando la función type() en Python y la instrucción if-else.

Si el tipo de variable es una tupla, ejecutará la función. De lo contrario, ejecutará otra función, como se muestra a continuación.

fruits_tuple = ("banana", "apple", "orange", "guava")
if type(fruits_tuple) == tuple:
    print(fruits_tuple[2])
else:
    print("Variable is not a tuple.")

La salida del código anterior se muestra a continuación.

obteniendo el último elemento de la tupla usando la función de tipo en Python

En conclusión, el error índice de tupla fuera de rango ocurre cuando intentamos acceder a un elemento de una tupla usando un índice que no está dentro del rango de nuestra tupla.

Es importante usar la función len() si no estamos familiarizados con la longitud de nuestra tupla, también podemos usar bloques try-except para detectar el error antes de que se genere y verifique el tipo de variable para asegurar que el índice estamos tratando de acceder está dentro del rango de la tupla y la variable es de tipo tupla respectivamente, para evitar este error.

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 Error