Solucionar el error Too Many Indices for Array en Python

Vaibhav Vaibhav 14 abril 2022
Solucionar el error Too Many Indices for Array en Python

Las matrices o listas y las tuplas son estructuras de datos contiguas en Python. Pueden almacenar elementos pertenecientes a un solo tipo de datos y múltiples tipos de datos juntos. Por ejemplo, podemos tener una lista, matriz o tupla que contenga cinco elementos enteros, tres números de coma flotante, siete objetos de clase, dos conjuntos y ocho valores booleanos.

Para acceder a estos elementos, podemos utilizar los índices de estos elementos. Estas estructuras de datos están basadas en el índice 0. Supongamos que intentamos acceder a un elemento en un índice mayor o igual a la longitud de la estructura de datos. En ese caso, nos encontramos con la excepción IndexError.

En este artículo, aprenderemos cómo solucionar este problema en Python.

Cómo corregir los Too Many Indices for Array en Python

Para arreglar la excepción IndexError, uno debe asegurarse de que no ingrese un índice igual o mayor que la longitud de la estructura de datos.

El enfoque mencionado anteriormente es obvio. Sin embargo, aún podemos escribir un código auxiliar o una función de utilidad para tomar un valor de una lista o tupla. Esta función garantizará que obtengamos el valor en un índice si existe y maneje de manera segura los valores de índice no válidos. Consulte el siguiente código de Python para lo mismo.

def get_value(structure, index):
    if not isinstance(index, int):
        return None

    if not isinstance(structure, (list, tuple)):
        return None

    if index >= len(structure):
        return None

    return structure[index]


a = ["Hello", "World", 1, 2.0, 3.00000, True, False]
print(get_value([], 4.0))
print(get_value(a, 4))
print(get_value(a, -1))
print(get_value(None, 8))
print(get_value("Hello World", "Python"))

Producción :

None
3.0
False
None
None

Antes de devolver el valor en el índice especificado, la función auxiliar anterior asegura que el índice sea del tipo int, la estructura de datos sea del tipo list o tuple, y el índice sea menor que la longitud de la estructura de datos. Una vez que se pasan todas las comprobaciones, podemos devolver con seguridad el valor requerido en el índice.

Una implementación más fácil de la función get_value() sería usar el bloque try y except. Consulte el siguiente código de Python para lo mismo.

def get_value(structure, index):
    try:
        return structure[index]
    except:
        return None


a = ["Hello", "World", 1, 2.0, 3.00000, True, False]
print(get_value([], 4.0))
print(get_value(a, 4))
print(get_value(a, -1))
print(get_value(None, 8))
print(get_value("Hello World", "Python"))

Producción :

None
3.0
False
None
None

El bloque try y except devolvería None si algo sale mal y un valor real si todas las condiciones requeridas se cumplen con éxito.

Vaibhav Vaibhav avatar Vaibhav Vaibhav avatar

Vaibhav is an artificial intelligence and cloud computing stan. He likes to build end-to-end full-stack web and mobile applications. Besides computer science and technology, he loves playing cricket and badminton, going on bike rides, and doodling.

Artículo relacionado - Python Error