índice de asignación de lista de Python fuera de rango

Funciones y métodos de Python

Un IndexError no es motivo de preocupación. Es un error que se genera cuando intentas acceder a un índice que está fuera del tamaño de una lista. ¿Cómo resuelves este problema? ¿Dónde se puede plantear?

En este artículo, responderemos esas preguntas. Discutiremos qué son los IndexErrors y cómo puede resolver el & ldquo; índice de asignación de lista fuera de rango & rdquo; error. Veremos un ejemplo para ayudarlo a ver exactamente qué causa este error.

¡Sin más preámbulos, comencemos!




El problema: indexerror: asignación de lista índice fuera de rango

Cuando reciba un mensaje de error, lo primero que debe hacer es leerlo. Un mensaje de error puede decirle mucho sobre la naturaleza de un error.

Nuestro mensaje de error es: indexerror: índice de asignación de lista fuera de rango.

IndexError nos dice que hay un problema con la forma en que accedemos a un índice . Un índice es un valor dentro de un objeto iterable, como una lista o una cadena.

El mensaje & ldquo; listar el índice de asignación fuera de rango & rdquo; nos dice que estamos tratando de asignar un elemento a un índice que no existe.

Para usar la indexación en una lista, necesita inicializar la lista. Si intenta asignar un elemento a una lista en una posición de índice que no existe, se generará este error.

El 81% de los participantes afirmó que se sentía más seguro acerca de sus perspectivas de trabajo técnico después de asistir a un campamento de entrenamiento. . Asigne a un bootcamp hoy mismo.

El graduado promedio de un bootcamp pasó menos de seis meses en la transición de carrera, desde comenzar un bootcamp hasta encontrar su primer trabajo.

El error de asignación de lista es comúnmente generado en para y bucles while .

Vamos a escribir un programa que agregue todos los pasteles que contienen la palabra & ldquo; Fresa & rdquo; en una nueva matriz. Comencemos declarando dos variables:

 cakes = ["Tarta de fresa", "Muffin de chocolate", "Tarta de queso de fresa"] fresa = [] 

La primera variable almacena nuestra lista de tartas. La segunda variable es una lista vacía que almacenará todos los pasteles de fresa. A continuación, vamos a escribir un bucle que compruebe si cada valor en & ldquo; pasteles & rdquo; contiene la palabra & ldquo; Fresa & rdquo ;.

 para c en el rango (0, len (tortas) ): si "Fresa" en los pasteles [c]: fresa [c] = pasteles [c] imprimir (fresa) 

Si un valor contiene "Fresa", debe agregarse a nuestra nueva matriz. De lo contrario, no pasará nada. Una vez que nuestro bucle for se ha ejecutado, el comando & ldquo; strawberry & rdquo; La matriz debe imprimirse en la consola. Ejecutemos nuestro código y veamos qué sucede:

 Traceback (última llamada más reciente): Archivo "principal .py ", línea 6, en & lt; módulo & gt; strawberry [c] = cakes [c] IndexError: índice de asignación de lista fuera de rango 

Como esperábamos, se ha generado un error. ¡Ahora podemos resolverlo!





La solución

Nuestro mensaje de error nos dice la línea de código en la que falla nuestro programa:

 fresa [c] = pasteles [c] 

El problema con este código es que estamos tratando de asignar un valor dentro de nuestra lista de & ldquo; fresa & rdquo; a una posición que no existe.

Cuando creamos nuestra matriz de fresa, no tiene valores. Esto significa que no tiene números de índice. Lo siguiente los valores no existen:

 fresa [0] fresa [1] & hellip; 

Estamos tratando de asignar valores a estas posiciones en nuestro bucle for. Debido a que estas posiciones no contienen valores, se devuelve un error.

Podemos resolver este problema en dos formas.

Solución con append ()

Primero, podemos agregar un elemento al archivo & ldquo; fresa & rdquo; matriz usando append () :

 tortas = [" Tarta de fresa "," Muffin de chocolate "," Tarta de queso con fresa "] fresa = [] para c en el rango (0, len (tortas)): si" Fresa "en tortas [c ]: strawberry.append (cakes [c]) print (strawberry) 

El método append () agrega un elemento a una matriz y crea una posición de índice para ese artículo. Ejecutemos nuestro código: [& lsquo; Strawberry Tart & rsquo ;, & lsquo; Strawberry Cheesecake & rsquo;].

¡Nuestro código funciona!

Solución con la inicialización de una matriz

Alternativamente, podemos inicializar nuestra matriz con algunos valores cuando la declaramos. Esto creará las posiciones de índice en las que podemos almacenar valores dentro de nuestra & ldquo; fresa & rdquo; matriz.

Para inicializar una matriz, puede utilizar este código:

 strawberry = [] * 10 

Esto creará una matriz con 10 valores vacíos. Nuestro código ahora se ve así:

 cakes = ["Tarta de fresa", "Muffin de chocolate", "Fresa Tarta de queso "] fresa = [] * 10 para c en el rango (0, len (pasteles)): si" Fresa "en los pasteles [c]: fresa.append (pasteles [c]) imprimir (fresa) 

Intentemos ejecutar nuestro código:

 ['Strawberry Tart',' Strawberry Cheesecake'] 

Nuestro código devuelve con éxito una matriz con todos los pasteles de fresa.

"Career Karma entró en mi vida cuando más lo necesitaba y rápidamente me ayudó a emparejarme con un bootcamp. Dos meses después de graduarme, encontré el trabajo de mis sueños que se alineaba con mis valores y objetivos en la vida. "

Venus, ingeniero de software en Rockbot

Es mejor usar este método cuando se sabe exactamente cuántos valores va a almacenar en una matriz.

Nuestro código anterior es algo ineficiente. porque hemos inicializado & ldquo; fresa & rdquo; con 10 valores vacíos. Solo hay un total de tres pasteles en nuestros & ldquo; pasteles & rdquo; matriz que posiblemente podría contener & ldquo; Strawberry & rdquo ;. En la mayoría de los casos, usar el método append () es más elegante y más eficiente.






Conclusión

IndexErrors se generan cuando intenta utilizar un elemento con un valor de índice que no existe. El & ldquo; indexerror: índice de asignación de lista fuera de rango & rdquo; se genera cuando intenta asignar un elemento a una posición de índice que no existe.

Para resolver este error, puede usar append () para agregar un elemento a una lista. También puede inicializar una lista antes de comenzar a insertar valores para evitar este error.

¡Ahora está listo para comenzar a resolver el error de asignación de lista como un desarrollador profesional de Python!





índice de asignación de lista de Python fuera de rango: StackOverflow Questions

Tutorials