¿Qué significa el error «Lista de índice fuera de rango» de Python?
Entonces, estaba trabajando con una registro o matriz en Python y probablemente estaba tratando de dividirla. Pero en sitio del resultado esperado, obtiene un error que dice ‘índice de registro fuera de rango’. No te preocupes, le puede ocurrir a cualquiera.
Veamos qué significa este error, su causa y cómo deshacerse de él sin más preámbulos.
¿Qué significa el error «índice de registro fuera de rango» en Python?
Cuando Python arroja un error de «índice de registro fuera de rango», significa que intentó segmentar la registro más allá del final índice.
Python identifica cada factor de una registro por su índice. Y el índice de una registro comienza en cero. Por ejemplo, si tiene una registro de cinco rudimentos, el primer factor estará en el índice cero, mientras que el final estará en el cuarto índice.
Por ejemplo, en una registro de cinco lenguajes de programación:
Languages = ["Python", "Go", "PHP", "C", "Perl"]
La indexación de la registro inicial está entre cero y cuatro. Entonces, si intenta cortarlo para imprimir el botellín factor, como se muestra a continuación, obtendrá un error:
print(languages[5])
Output:
IndexError: list index out of range
En el ejemplo inicial, Python intenta averiguar el botellín índice en la registro y, cuando no puede encontrarlo, arroja el error de índice de la registro. Eso es porque el primer factor (Python) está en el índice cero, mientras que el final (Perl) está en el índice cuatro.
Esa es la raíz del error «índice de registro fuera de rango». Como se mencionó, Python lo bichero cuando intenta segmentar una registro más allá del final índice.
Cómo eliminar el error «índice de registro fuera de rango» en Python
Entonces, ¿cómo puedes deshacerte de este error? Es manejable.
Por otra parte de la sección inicial, puede imprimir los índices usando un en frente de onda en un concepto de registro:
indexes = [languages.index(i) for i in languages]
print(indexes)
Output:
[0, 1, 2, 3, 4]
El índice de una registro es la pulvínulo del corte en programación. Entonces, cubo que conoce el índice más stop de la registro para la salida inicial (4), puede descifrar el tope del segmento.
Por lo tanto, para segmentar la registro y obtener el final factor:
print(languages[4])
Output:
Perl
Ahora da el resultado correcto.
¿Qué sucede si desea navegar por la registro usando el índice?
Por otra parte del onda for regular de Python, asimismo puede utilizar el concepto de índice para navegar por una registro. Si acertadamente este método puede parecer difícil, a veces es inapelable. Por ejemplo, es útil si desea ordenar una registro en orden inverso.
Este método funciona estableciendo un índice auténtico y aumentándolo o disminuyéndolo en uno hasta el final índice adecuado.
Para imprimir los artículos con un número de índice pino (del primero al final artículo), por ejemplo:
index = 0 # Initial index
for i in Languages:
print(Languages[index])
index +=1
Output:
Python
Go
PHP
C
Perl
Pero, ¿qué sucede si establece el índice auténtico en uno en sitio de cero? Echar un vistazo:
index = 1 # Initial index
for i in Languages:
print(Languages[index])
index +=1
Output:
Go
PHP
C
Perl
IndexError: list index out of range
En el ejemplo inicial, la indexación comienza desde el segundo factor (índice uno, Ir† Entonces, mientras se incrementa, el ciclo no se detiene hasta que se completa el conteo de los cinco rudimentos. Esto obliga al índice a incrementarse en uno hasta la última entrada.
Por lo tanto, el segmento alcanza un botellín índice que no está adecuado. Entonces arroja un error de índice. Esto significa que el índice aumenta para cada factor en el subsiguiente patrón:
1=1, 1+1=2, 1+2=3, 1+3=4, 1+4=5
En sitio del patrón correcto, a enterarse:
0=0, 0+1=1, 1+1=2, 1+2=3, 1+3=4
Como puede ver, el valencia más stop del índice inicial es cuatro, lo cual es correcto porque el ciclo comienza a aumentar la indexación desde cero.
Por lo tanto, establecer el índice auténtico en cero, como lo hizo en el primer ejemplo de esta sección, elimina el error «índice de registro fuera de rango»:
index = 0 # Initial index
for i in Languages:
print(Languages[index])
index +=1 #Increase the index by one for each iteration
Para aplicar este concepto a la salida de los rudimentos en orden inverso, debe restar uno de la largura de la matriz. Esto obliga al índice a comenzar desde cuatro y contar alrededor de a espaldas hasta el primer índice, cero.
Esto es útil si no está seguro del valencia de largura de la registro proveniente de una fuente, como una pulvínulo de datos.
Aquí hay un ejemplo:
index = (len(Languages)-1)
for i in Languages:
print(Languages[index])
index -=1 #Decrease the index by one for each iteration
Output:
Perl
C
PHP
Go
Python
Pero si no resta uno de la largura de la registro, obtiene el error «registro fuera del índice de rango»:
index = (len(Languages)-1)
for i in Languages:
print(Languages[index])
index -=1
Output:
IndexError: list index out of range
El código inicial genera un error de índice porque la largura de la registro es cinco e intenta indexar de cinco a cero, mientras que el índice más stop es cuatro. Entonces significa que la registro no tiene un botellín índice (sexto factor).
Obtener listas de procesamiento creativo en Python
Los errores de Python son amigables para los humanos y generalmente legibles. Esto invariablemente los hace rastreables en un naturaleza legítimo.
Como aprendió, es conveniente manejable eliminar el índice de la registro fuera de rango. Si te encuentras con este error en tus futuros programas, por muy compleja que sea la registro, puedes aplicar los conceptos explicados en este post para solucionar el problema.
Siéntase soberano de ser creativo con listas complejas. Asimismo puede querer ilustrarse a ordenar listas en Python en su tiempo soberano para dominar mejor todo.