[ Foro de Python ]

Dudas iteración

06-Jul-2016 22:26
Invitado (L-Alv)
1 Respuestas

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.


12-Jul-2016 14:02
Nacho Cabanes (+32)

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.)