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

Zeeshan Afridi 21 junio 2023
  1. Python IndexError: índice de asignación de lista fuera de rango
  2. Solucione el IndexError: índice de asignación de lista fuera de rango en Python
  3. Arreglar IndexError: índice de asignación de lista fuera de rango usando la función append()
  4. Arreglar IndexError: índice de asignación de lista fuera de rango usando la función insertar ()
  5. Conclusión
Python IndexError: índice de asignación de lista fuera de rango

En Python, el IndexError: índice de asignación de lista fuera de rango aparece cuando intenta acceder a un índice de una lista que ni siquiera existe. Un índice es la ubicación de los valores dentro de un iterable, como una cadena, una lista o una matriz.

En este artículo, aprenderemos cómo corregir el error de fuera de rango del índice de asignación de la lista de errores de índice en Python.

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

Veamos un ejemplo del error para entenderlo y solucionarlo.

Ejemplo de código:

# error program --> IndexError: list assignment index out of range
i = [7, 9, 8, 3, 7, 0]  # index range (0-5)
j = [1, 2, 3]  # index range (0-3)

print(i, "\n", j)
print(f"\nLength of i = {len(i)}\nLength of j = {len(j)}")

print(f"\nValue at index {1} of list i and j are {i[1]} and {j[1]}")
print(
    f"\nValue at index {3} of list i and j are {i[3]} and {j[3]}"
)  # error because index 3 isn't available in list j

Producción :

[7, 9, 8, 3, 7, 0]
[1, 2, 3]

Length of i = 6
Length of j = 3

Value at index 1 of list i and j are 9 and 2

IndexError: list assignment index out of range

La razón detrás del IndexError: índice de asignación de lista fuera de rango en el código anterior es que estamos tratando de acceder al valor en el índice 3, que no está disponible en la lista j.

Solucione el IndexError: índice de asignación de lista fuera de rango en Python

Para corregir este error, debemos ajustar la indexación de iterables en esta lista de casos. Digamos que tenemos dos listas y desea reemplazar la lista a con la lista b.

Ejemplo de código:

a = [1, 2, 3, 4, 5, 6]
b = []
k = 0

for l in a:
    b[k] = l  # indexError --> because the length of b is 0
    k += 1

print(f"{a}\n{a}")

Producción :

IndexError: list assignment index out of range

No puede asignar valores a la lista b porque su longitud es 0, y está tratando de agregar valores en el índice kth b[k] = I, por lo que está generando el error de índice. Puedes arreglarlo usando append() e insert().

Arreglar IndexError: índice de asignación de lista fuera de rango usando la función append()

La función append() añade elementos (valores, cadenas, objetos, etc.) al final de la lista. Es útil porque no tiene que manejar el dolor de cabeza del índice.

Ejemplo de código:

a = [1, 2, 3, 4, 5, 6]
b = []
k = 0

for l in a:
    # use append to add values at the end of the list
    j.append(l)
    k += 1

print(f"List a: {a}\nList b: {a}")

Producción :

List a: [1, 2, 3, 4, 5, 6]
List b: [1, 2, 3, 4, 5, 6]

Arreglar IndexError: índice de asignación de lista fuera de rango usando la función insertar ()

La función insert() puede insertar directamente valores en la posición k'th de la lista. Toma dos argumentos, insert(index, value).

Ejemplo de código:

a = [1, 2, 3, 5, 8, 13]
b = []
k = 0

for l in a:
    # use insert to replace list a into b
    j.insert(k, l)
    k += 1

print(f"List a: {a}\nList b: {a}")

Producción :

List a: [1, 2, 3, 4, 5, 6]
List b: [1, 2, 3, 4, 5, 6]

Además de las dos soluciones anteriores, si desea tratar las listas de Python como matrices normales en otros idiomas, puede predefinir el tamaño de su lista con valores Ninguno.

Ejemplo de código:

a = [1, 2, 3, 4, 5, 6]
b = [None] * len(i)

print(f"Length of a: {len(a)}")
print(f"Length of b: {len(b)}")

print(f"\n{a}\n{b}")

Producción :

Length of a: 6
Length of b: 6

[1, 2, 3, 4, 5, 6]
[None, None, None, None, None, None]

Una vez que haya definido su lista con valores ficticios Ninguno, puede usarla en consecuencia.

Conclusión

Podría haber algunas técnicas y lógica manuales más para manejar el IndexError: índice de asignación de lista fuera de rango en Python. Este artículo describe las dos funciones de lista comunes que nos ayudan a manejar el error de índice en Python al reemplazar dos listas.

También hemos discutido una solución alternativa para predefinir la lista y tratarla como una matriz similar a las matrices de otros lenguajes de programación.

Zeeshan Afridi avatar Zeeshan Afridi avatar

Zeeshan is a detail oriented software engineer that helps companies and individuals make their lives and easier with software solutions.

LinkedIn

Artículo relacionado - Python Error

Artículo relacionado - Python List