Autor
|
Tema: Muestra de un array inverso en python (Leído 3,759 veces)
|
AgnesBlack
Desconectado
Mensajes: 44
|
Hola tengo el siguiente problema , tengo que mostra una lista de n tamaño como por ejemplo N=5 1,4,5,2,7 entonce el programa deberia mostrar 7,2,5,4,1 este es el codigo en python n=input("ingrese tamanio:") x=[] y=[0]*n for i in range(n): x.append(int(raw_input("ingrese valor:"))) m=0 for i in range(n,0,-1): y[m]=x[i] m=m+1 print y[m]
pero en salida me muestra este error y[m]=x IndexError: list index out of range
a que se debe ? que estoy haciendo mal?
|
|
|
En línea
|
|
|
|
engel lex
|
range(i,f,s) generará una lista tal que sea desde i hasta f sin incluirlo, moviendose b]s[/b] valores
si haces un print a tu range verás que el error es que intenta acceder al array en la posición 5, cuando tu array va del 0 al 4 como es normal
|
|
|
En línea
|
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
|
|
|
AgnesBlack
Desconectado
Mensajes: 44
|
osea que lo que me quieres decir que mi range tiene que ser asi ? gracias por responder por que cuando pongo solamente for i in range(n,0,-1): print i
me muestra la posiciones invertidas
|
|
« Última modificación: 10 Enero 2017, 04:17 am por AgnesBlack »
|
En línea
|
|
|
|
engel lex
|
experimenta! jejeje de eso se trata la informática print range(0,5,1)
quien es i en ese range?
|
|
|
En línea
|
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
|
|
|
AgnesBlack
Desconectado
Mensajes: 44
|
i es 0 (donde inicia) n es 5 (el tamaño) 1 el step +1
y tambien se que la forma inversa de que lo muestre invertido es
list(range(5,0,-1))
en eso no tengo duda la duda que tengo es por que mi codigo no almacena el datos en la posicion como te mostre en el mensaje de arriba cuando solamente pongo print i , me muestra las posiciones invertidas , pero cuando pongo el y[m]=x que vendria ser la posicion 5 por ejemplo el valor de ella no me la guarda en y[m] y es lo q vengo de hace dias averiguando el por que
|
|
|
En línea
|
|
|
|
engel lex
|
i es 0 (donde inicia) n es 5 (el tamaño) 1 el step +1 i lo define el for, no está definido antes...
>>> range(5,0,-1) [5, 4, 3, 2, 1]
es decir el va a intentar acceder a tu array en la posición 5 hasta la 1 pero tu array va desde la posición 0 hasta la 4... cuando intenta acceder a la posición 5 que no exíste, indica IndexError: list index out of range tu range tiene que ser desde n-1, hasta -1 (porque no lo incluye), con saltos de -1
|
|
|
En línea
|
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
|
|
|
AgnesBlack
Desconectado
Mensajes: 44
|
Despues de analizar y comprender un poco al fin el array y mas de lo tu me explicaste n=input("ingrese tamanio:") x=[] y=[0]*n for i in range(n): x.append(int(raw_input("ingrese valor:"))) m=0 for i in range(n-1,-1,-1): y[m]=x[i] print y[m] m=m+1
me salio correctamente el codigo , te lo agradezco mucho muchas gracias por tu apoyo , al fin pude solucionarlo
|
|
|
En línea
|
|
|
|
engel lex
|
por cierto, otra opción era usar matemáticas si quieres que se mueva del N al 0 sabiendo que tu entrada es del 0 al N (range(N) ) es N-1-i for i in range(N): print x[N-1-i]
|
|
|
En línea
|
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
|
|
|
AgnesBlack
Desconectado
Mensajes: 44
|
jaja por algo eres el admin , si me falta nociones de matematicas tengo que leer un poco mas , ya leere esos libros que subiste de matematicas aca el codigo modificado n=input("ingrese tamanio:") x=[] y=[0]*n for i in range(n): x.append(int(raw_input("ingrese valor:"))) m=0 for i in range(n): y[m]=x[n-1-i] print y[m]
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
¿Como cargo un archivo binario o txt desde la consola de python en array?
Programación General
|
gamekolor
|
0
|
3,791
|
2 Junio 2010, 01:05 am
por gamekolor
|
|
|
[Python] Redimensionar un array
Scripting
|
M3LiNdR1
|
1
|
3,654
|
17 Octubre 2011, 01:00 am
por M3LiNdR1
|
|
|
SSH INVERSO
Seguridad
|
chapo182
|
1
|
3,884
|
4 Octubre 2012, 10:08 am
por adastra
|
|
|
[Python] Mi consola no muestra nada...
Scripting
|
BigByte
|
4
|
4,714
|
21 Diciembre 2014, 22:33 pm
por Eleкtro
|
|
|
[AYUDA]Insertando elemento en un array en python
Scripting
|
AgnesBlack
|
5
|
3,403
|
28 Enero 2017, 09:43 am
por PUAROT
|
|