Título: Aprendiendo PYTHON desde cero, Lección 30. Publicado por: ViejoMajara en 21 Marzo 2015, 12:35 pm ¡Hola!
En la lección 30 del manual de R.Narvaja, en la penúltima página, aparece un ejemplo en el que, para crear una salida con el nombre y salario de cada empleado, hace lo siguiente: Citar lista={'Pepe':'I','Jose':'E','Pirulo':'I','Jorge':'E','Salvador':'E'} for emp in lista: if lista[emp]=='E': a= Empleados(emp) a.computarSueldo() print a.empleado, a.sueldo else: a= Ingenieros(emp) a.computarSueldo() print a.empleado, a.sueldo Se entiende perfectamente, pero al imprimir el orden en el que salen es: Citar Jose 2000 Pirulo 3000 Pepe 3000 Jorge 2000 Salvador 2000 Por más vueltas que le doy al tema no consigo averiguar el por qué de esta ordenación. ¿Podría alguien aclararlo? Saludos Título: Re: Aprendiendo PYTHON desde cero, Lección 30. Publicado por: explorer en 21 Marzo 2015, 18:06 pm La ordenación de las entradas clave/valor en un diccionario o hash, es "aleatorio" (depende del cómputo del valor hash interno).
Título: Re: Aprendiendo PYTHON desde cero, Lección 30. Publicado por: LaThortilla (Effort) en 21 Marzo 2015, 18:20 pm Por más vueltas que le doy al tema no consigo averiguar el por qué de esta ordenación. ¿Podría alguien aclararlo? Saludos sinceramente me he quedado con la duda... sera algun tipo de error de python... :huh: MISMO CODIGO: Código
DISTINTOS RESULTADOS: :huh: :huh: :huh: :huh: :huh: Código
Título: Re: Aprendiendo PYTHON desde cero, Lección 30. Publicado por: LaThortilla (Effort) en 21 Marzo 2015, 18:30 pm La ordenación de las entradas clave/valor en un diccionario o hash, es "aleatorio" (depende del cómputo del valor hash interno). Pensé que con el lista.update se solucionaría... pero es igualTítulo: Re: Aprendiendo PYTHON desde cero, Lección 30. Publicado por: explorer en 22 Marzo 2015, 03:25 am Este comportamiento no es algo propio de Python. En Perl pasa lo mismo con los hash:
Código: $ perl -E '%x = ( a => 1, b => 2, c => 3); say "$_ => $x{$_}" for keys %x' Existen bibliotecas que permiten recuperar la información en el mismo orden en que fue grabada. En Perl, por ejemplo, está Tie::IxHash (https://metacpan.org/pod/Tie::IxHash). Título: Re: Aprendiendo PYTHON desde cero, Lección 30. Publicado por: ViejoMajara en 24 Marzo 2015, 11:39 am ¡Hola!
Soy novato en Python y jamás hubiese imaginado que se pudiesen producir salidas aleatorias sin proponerlas explícitamente. Asunto solventado. Saludos. Título: Re: Aprendiendo PYTHON desde cero, Lección 30. Publicado por: LaThortilla (Effort) en 25 Marzo 2015, 04:36 am Este comportamiento no es algo propio de Python. En Perl pasa lo mismo con los hash: Código: $ perl -E '%x = ( a => 1, b => 2, c => 3); say "$_ => $x{$_}" for keys %x' Existen bibliotecas que permiten recuperar la información en el mismo orden en que fue grabada. En Perl, por ejemplo, está Tie::IxHash (https://metacpan.org/pod/Tie::IxHash). Grade Gracias por la explicación... ;-) ;-) ;-) ;-) ;-) ;-) ;-) ;-) ;-) |