Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: AgnesBlack en 26 Enero 2017, 08:03 am



Título: [AYUDA]Insertando elemento en un array en python
Publicado por: AgnesBlack en 26 Enero 2017, 08:03 am
Hola , nuevamente yo intentando aprender python y surgiendo con nuevas dudas , tengo una consigna en que dada una lista insertar en una posicion no mayor al tamaño insertar un elemento , mi resolucion en c fue la siguiente

Código:

#include <stdio.h>
int main()
{
int n,x[100],i,k,pos;
printf("ingrese tamanio:");
scanf("%d",&n);
for(i=1;i<=n;i++)
{
printf("ingrese valor:");
scanf("%d",&x[i]);
}
printf("el vector es:");
for(i=1;i<=n;i++)
{
printf("%d",x[i]);
}
printf("ingresar valor a insertar:");
scanf("%d",&k);
printf("ingrese posicion a insertar:");
scanf("%d",&pos);
for(i=n;n>=pos;i--)
{
x[i+1]=x[i];
}
x[pos]=k;
n=n+1;
printf("el nuevo vector es:");
for(i=1;i<=n;i++)
printf("%d",x[i]);
return 0;
}


me funciona correctamente, obviando que la posicion que siempre ingresare sera menor al tamaño , que eso lo areglare cuando solucione esto en python
este es mi codigo en python

Código:
n=int(raw_input("ingrese tamanio:"))
x=[]
for i in range(n):
    x.append(int(raw_input("ingrese valor:")))
print "el vector es:"
for i in range(n):
    print x[i]
k=int(raw_input("ingrese valor a insertar:"))
pos=int(raw_input("ingrese posicion a insertar:"))
for i in range(n-1,-1,pos):
    x[i+1]=x[i]
    print x[i]
x[pos]=k
n=n+1
for i in range(n):
    print x[i]


pero no me ejecuta correctamente el programa,me sale este error

Código:
  x[pos]=k
IndexError: list assignment index out of range

cual es el error? o que estoy haciendo mal en python?




Título: Re: [AYUDA]Insertando elemento en un array en python
Publicado por: PUAROT en 26 Enero 2017, 10:26 am
Estas teniendo en cuenta que pos debe ser igual a un valor negativo  ?


Título: Re: [AYUDA]Insertando elemento en un array en python
Publicado por: AgnesBlack en 26 Enero 2017, 23:59 pm
Estas teniendo en cuenta que pos debe ser igual a un valor negativo  ?


mmm como lo tendria q hacer eso? tu que me aconsejaria o como seria tu codigo en python


Título: Re: [AYUDA]Insertando elemento en un array en python
Publicado por: engel lex en 27 Enero 2017, 00:03 am
en python si el indice es negativa accede al array de forma inversa... es decir


Código:
a = [5,2,0,1,2,8]

a[-1] es 8
a[-2] es 2

y así en más


por que usas esto
Código:
pos=int(raw_input("ingrese posicion a insertar:"))

en lugar de simplemente hacer

Código:
pos=input("ingrese posicion a insertar:")

? el segundo retorna en int en caso que ingresen un int


Título: Re: [AYUDA]Insertando elemento en un array en python
Publicado por: AgnesBlack en 28 Enero 2017, 01:49 am
bien modifique el codigo de la siguiente manera

Código:
n=int(raw_input("ingrese tamanio:"))
x=[]
for i in range(n):
    x.append(int(raw_input("ingrese valor:")))
print "el vector es:"
for i in range(n):
    print x[i]
k=int(raw_input("ingrese valor a insertar:"))
pos=input(raw_input("ingrese posicion a insertar:"))
for i in range(n-1,-1,pos):
    x[i+1]=x[i]
    print x[i]
x[pos]=k
n=n+1
for i in range(n):
    print x[i]

pero me sigue saliendo el error

Código:
    pos=input(raw_input("ingrese posicion a insertar:"))
  File "<string>", line 0
   
    ^
SyntaxError: unexpected EOF while parsing


Título: Re: [AYUDA]Insertando elemento en un array en python
Publicado por: PUAROT en 28 Enero 2017, 09:43 am
Te sobra el raw_input...
tienes:
Código:
pos=input(raw_input("ingrese posicion a insertar:"))

y deberias usar
Código:
pos=input("ingrese posicion a insertar:")