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