[ Foro de Python ]
Tengo una enorme duda:
Porqué cuando intrusco este código:
l=[1, 2, 3]
for i in l:
a=l[i-1]**2
print (i, a)
Me devuelve:
1 1
2 4
3 9
Pero no funciona cuando los valores de los elementos de la lista son más grandes:
l=[1000, 2000, 3000]
for i in l:
a=l[i-1]**2
print (i, a)
Me devuelve:
Traceback (most recent call last):
File "<pyshell#2>", line 2, in <module>
a=l[i-1]**2
IndexError: list index out of range
Espero y me puedan ayudar, apenas tengo unos días en esto de la programación. Gracias chic@s.
Porque con dato[i] obtienes el valor de la posición "i" de la lista. Si ese valor de "i" es, como en tu segundo ejemplo, el número 1000, buscarías el dato que se encuentra en la posición 1000 (contando desde cero) de tu lista... pero tu lista no tiene tantos datos.
(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)