Así que estabas trabajando con una lista o matriz en Python y probablemente intentaste dividirla. Pero en lugar del resultado esperado, obtiene un error que dice "índice de lista fuera de rango". No te preocupes, le puede pasar a cualquiera.
Exploremos qué significa este error, su causa y cómo eliminarlo sin más preámbulos.
¿Qué significa el error "índice de lista fuera de rango" en Python?
Cuando Python arroja un error de "índice de lista fuera de rango", significa que intentó dividir la lista más allá de su último índice.
Python identifica cada elemento de una lista por su índice. Y el índice de una lista comienza desde cero. Por ejemplo, cuando tiene una lista con cinco elementos, su primer elemento está en el índice cero, mientras que el último está en el cuarto índice.
Por ejemplo, en una lista de cinco lenguajes de programación:
Idiomas = ["Python", "Go", "PHP", "C", "Perl"]
La indexación de la lista anterior está entre cero y cuatro. Entonces, tratar de cortarlo para imprimir el quinto elemento como se muestra a continuación da un error:
imprimir (idiomas[5])
Producción:
IndexError: índice de lista fuera de rango
En el ejemplo anterior, Python intenta buscar el quinto índice en la lista y, cuando no puede encontrarlo, arroja el error de índice de la lista. Eso es porque el primer elemento (Python) está en el índice cero, mientras que el último (Perl) está en el índice cuatro.
Esa es la base del error "índice de lista fuera de rango". Como se dijo, Python lo lanza cada vez que intenta dividir una lista más allá de su último índice.
Cómo eliminar el error "índice de lista fuera de rango" en Python
Entonces, ¿cómo puedes eliminar este error? Es fácil.
Además de la sección anterior, puede imprimir los índices usando un porbucle en una lista de comprensión:
indexes = [languages.index (i) for i in languages]
imprimir (índices)
Producción:
[0, 1, 2, 3, 4]
El índice de una lista es la base del corte en programación. Entonces, dado que conoce el índice más alto de la lista para la salida anterior (4), puede descifrar el límite del segmento.
Por lo tanto, para dividir la lista y obtener el último elemento:
imprimir (idiomas[4])
Producción:
Perl
Ahora genera el resultado correcto.
¿Qué sucede si desea recorrer la lista utilizando su índice?
Además de los habituales Python para bucle, también puede usar el concepto de índice para iterar a través de una lista. Si bien este método puede parecer arduo, a veces es inevitable. Por ejemplo, resulta útil si desea ordenar una lista en orden inverso.
Este método funciona estableciendo un índice inicial e incrementándolo o decrementándolo en uno hasta el último índice disponible.
Para imprimir los artículos con un número de índice creciente (del primero al último artículo), por ejemplo:
índice = 0 # índice inicial
para i en Idiomas:
imprimir (Idiomas[índice])
índice +=1
Producción:
Pitón
Ir
PHP
C
Perl
Pero, ¿qué sucede si establece el índice inicial en uno en lugar de cero? Echar un vistazo:
índice = 1 # índice inicial
para i en Idiomas:
imprimir (Idiomas[índice])
índice +=1
Producción:
Ir
PHP
C
Perl
IndexError: índice de lista fuera de rango
En el ejemplo anterior, la indexación comienza desde el segundo elemento (índice uno, Ir). Entonces, mientras aumenta, el ciclo no se detiene hasta que completa el conteo de los cinco elementos. Esto obliga al índice a aumentar en uno hasta el último elemento.
Por lo tanto, el segmento llega a un quinto índice que no está disponible. Entonces arroja un error de índice. Significa que el índice aumenta en el siguiente patrón para cada elemento:
1=1, 1+1=2, 1+2=3, 1+3=4, 1+4=5
En lugar del patrón correcto, que es:
0=0, 0+1=1, 1+1=2, 1+2=3, 1+3=4
Como puede ver, el valor más alto del índice anterior es cuatro, lo cual es correcto ya que el ciclo comienza a incrementar la indexación desde cero.
Por lo tanto, establecer el índice inicial en cero como lo hizo en el primer ejemplo de esta sección elimina el error "índice de lista fuera de rango":
índice = 0 # índice inicial
para i en Idiomas:
imprimir (Idiomas[índice])
índice +=1 #Aumenta el índice en uno por cada iteración
Para aplicar este concepto para generar los elementos en orden inverso, deberá restar uno de la longitud de la matriz. Esto obliga al índice a comenzar desde cuatro y contar hacia atrás hasta el primer índice, cero.
Esto es útil si no está seguro del valor de longitud de la lista proveniente de una fuente, por ejemplo, una base de datos.
Aquí hay un ejemplo:
index = (len (Idiomas)-1)
para i en Idiomas:
imprimir (Idiomas[índice])
índice -=1 #Disminuir el índice en uno por cada iteración
Producción:
Perl
C
PHP
Ir
Pitón
Pero si no se resta uno de la longitud de la lista, aparece el error "lista fuera del índice de rango":
index = (len (Idiomas)-1)
para i en Idiomas:
imprimir (Idiomas[índice])
índice -=1
Producción:
IndexError: índice de lista fuera de rango
El código anterior arroja un error de índice porque la longitud de la lista es cinco e intenta comenzar a indexar hacia abajo de cinco a cero, mientras que el índice más alto es cuatro. Entonces significa que la lista no tiene un quinto índice (sexto elemento).
Obtener listas de manejo de creatividades en Python
Los errores de Python son amigables para los humanos y típicamente legibles. Invariablemente, esto los hace rastreables en una medida razonable.
Como ha aprendido, eliminar el error de índice de lista fuera de rango es bastante fácil. Si te encuentras con este error en tus futuros programas, por más compleja que sea la lista, puedes aplicar los conceptos explicados en este post para solucionar el problema.
Siéntase libre de ser creativo con listas complejas. También es posible que desee aprender a ordenar listas en Python en su tiempo libre para dominarlo mejor.
Las listas con múltiples tipos de datos pueden salirse de control rápidamente. Aquí se explica cómo ordenarlos con Python.
Leer siguiente
- Programación
- Pitón
- Programación
- Consejos de codificación
A Idowu le apasiona la tecnología inteligente y la productividad. En su tiempo libre, juega con la codificación y cambia al tablero de ajedrez cuando está aburrido, pero también le encanta romper con la rutina de vez en cuando. Su pasión por mostrarle a la gente el camino alrededor de la tecnología moderna lo motiva a escribir más.
Suscríbete a nuestro boletín
¡Únase a nuestro boletín para obtener consejos técnicos, reseñas, libros electrónicos gratuitos y ofertas exclusivas!
Haga clic aquí para suscribirse