Test Foro de elhacker.net SMF 2.1

Programación => Scripting => Mensaje iniciado por: Kase_New_Python en 26 Marzo 2014, 20:19 PM

Título: Estructura de datos en python
Publicado por: Kase_New_Python en 26 Marzo 2014, 20:19 PM
 :-[ Hola amigos del foro,  acabo de emigrar de c a python este es un lenguaje impresionante, hace unos dias estaba pensando en como aplicar las estructuras en c en python  por ejemplo
Código (python) [Seleccionar]
struct Persona{
 char nombre[50];
 int edad;
}


Entonces empecé a utilizar listas, he checacos los metodos append, extend, insert, remove, pop, index, count, sort y reverse:
Lo que hice fue lo siguiente:
Código (python) [Seleccionar]
datos=[]
Informacion = []
x = int(input("Cuantos datos desea introducir\n"))
for i in range(x):
   nombre = input("Nombre\n")
   edad = input("Edad\n")
   datos.append(nombre)
   datos.append(edad)
   Informacion.append(datos)
print("los datos son",Informacion)


:silbar: Pero en este punto me arroja lo siguiente si le pongo que quiero introducir 2 personas
los datos son [['Kase', '18', 'Danna', '16'], ['Kase', '18', 'Danna', '16']]

1.- En primera me repite la informacion de datos
2.- Cuando borro mi lista de datos  "del datos" o datos.clear  mi lista Informacion sale vacia..

mi pregunta es como le hago para que no me repita la informacion y la segunda es como recorro cada uno de mis elementos de mi lista de listas Informacion es decir como optengo el nombre y luego edad..
Tambien si existe otra forma mas facil de implementar las estructuras de C en python..
Muchas gracias de ante mano: Saludos



[MOD]: Bienvenido al foro, pero lee las normas del post con chincheta, para saber como insertar un código.
Título: Re: Estructura de datos en python
Publicado por: -Myx- en 27 Marzo 2014, 15:53 PM
te das cuenta que "datos" sigue creciendo y creciendo y en cada loop lo agregas a Informacion?

MOD: usar CODE esta bien, no tengo nada en contra de eso, pero quizas podriamos usar CODE sin un formato de codigo. Asi seria mas facil copiar y pegar en el caso de que haga falta.
Título: Re: Estructura de datos en python
Publicado por: Eleкtro en 27 Marzo 2014, 16:44 PM
Cita de: -Myx- en 27 Marzo 2014, 15:53 PMMOD: usar CODE esta bien, no tengo nada en contra de eso, pero quizas podriamos usar CODE sin un formato de codigo. Asi seria mas facil copiar y pegar en el caso de que haga falta.

No se muy bien a que te refieres, pero está permitido usar la etiqueta 'CODE' sin determinar el formato adecuado a la sintaxis del lenguaje específico (Ej: CODE=python), el problema es que el usuario no utilizó ninguna etiqueta (no insertó la etiqueta 'CODE'), si ahora el código está con formato es porque obviamente le edité el post.

Saludos
Título: Re: Estructura de datos en python
Publicado por: Once en 28 Marzo 2014, 18:03 PM
Eso sucede porque cuando haces un append(datos), en lugar de agregar los elementos de datos, guardas una referencia al objeto datos. Por eso cuando modificas o eliminas datos, tambien cambia el contenido de Informacion.

Una forma de hacer lo que quieres sin modificar mucho el código sería:

Código (python) [Seleccionar]

Informacion = []
x = int(input("Cuantos datos desea introducir: "))

for i in range(x):
    nombre = raw_input("Nombre: ")
    edad = raw_input("Edad: ")
    Informacion.append([nombre, edad])

print("los datos son",Informacion)


Para recorrer la lista, puedes usar un for:

Código (python) [Seleccionar]
for datos in Informacion:
    print "Nombre:", datos[0]
    print "Edad:", datos[1]


Recuerda que estás recorriendo una lista cuyo cada elemento es una lista nueva de dos elementos.

Otra forma de hacer lo mismo sería con diccionarios. Echales un vistazo.

Saludos!
Título: Re: Estructura de datos en python
Publicado por: Kase_New_Python en 2 Abril 2014, 20:06 PM
Muchas gracias a todos, ya heche andar esto y de nuevo gracias tambien a la comunidad.
Ahora ando checando lo del diccionario. gracias por la ayuda.