indexerror index python list exception

python - IndexError: lista el índice de asignación fuera de rango



indexerror list index out of range (8)

Por favor considere el siguiente código:

i = [1, 2, 3, 5, 8, 13] j = [] k = 0 for l in i: j[k] = l k += 1 print j

La salida (Python 2.6.6 en Win 7 de 32 bits) es:

> Traceback (most recent call last): > j[k] = l IndexError: list assignment index out of range

Supongo que es algo simple que no entiendo. ¿Alguien puede aclararlo?


Creo que el método de Python inserta lo que estás buscando;

Inserta el elemento x en la posición i.

array = [1,2,3,4,5] array.insert(1,2) print array # prints [2,2,3,4,5]


Haga j.append(l) lugar de j[k] = l y evite k en absoluto.


Para el ejemplo que publicó, también podría usar una lista de comprensión:

j = [l for l in i]

o simplemente haga una copia:

j = i[:]


Podría usar un diccionario (similar a una matriz asociativa) para j

i = [1, 2, 3, 5, 8, 13] j = {} #initiate as dictionary k = 0 for l in i: j[k] = l k += 1 print j

se imprimirá:

{0: 1, 1: 2, 2: 3, 3: 5, 4: 8, 5: 13}


Tu otra opción es inicializar j :

j = [None]*max(i)


Una forma más:

j=i[0] for k in range(1,len(i)): j = numpy.vstack([j,i[k]])

En este caso, j será una matriz numpy


j es una lista vacía, pero está intentando escribir en el elemento [0] en la primera iteración, que todavía no existe.

Pruebe lo siguiente en su lugar, para agregar un nuevo elemento al final de la lista:

for l in i: j.append(l)


j.append(l)

También evite el uso de minúsculas "L" porque es fácil confundirse con 1