• Publicidad

Ordenar hash

¿Apenas comienzas con Perl? En este foro podrás encontrar y hacer preguntas básicas de Perl con respuestas aptas a tu nivel.

Ordenar hash

Notapor millen » 2012-06-11 12:54 @579

Digamos que tengo lo siguiente:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. #!/usr/bin/perl -w
  2.  
  3. use warnings;
  4. use strict;
  5.  
  6.  
  7. my @vehiculos;
  8. my @puntos;
  9.  
  10. @vehiculos = ("coche", "camion", "bicicleta", "triciclo");
  11. @puntos = ("1", "1", "0", "1");
  12.  
  13. my %hash;
  14. my $keys;
  15.  
  16.  
  17. @hash{@vehiculos} = @puntos;
  18.  
  19. foreach my $keys (sort {$hash{$a} cmp $hash{$b}} keys %hash){
  20.         print "$keys = $hash{$keys}\n";
  21. }
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4


Así, como está, me lo imprimiría en base a los valores, de menor a mayor.

Pero si yo quiero imprimirlo en el orden original, o sea, en el mismo orden en el que se situaban en los arrays, ¿cómo se haría?

Muchas gracias.
millen
Perlero nuevo
Perlero nuevo
 
Mensajes: 23
Registrado: 2011-11-19 06:30 @313

Publicidad

Re: Ordenar hash

Notapor explorer » 2012-06-11 16:39 @736

El orden de creación lo tienes en el array @vehículos.

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
foreach my $key (@vehiculos) {
    print "$key => $hash{$key}\n";
}
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


De forma general, está respondido en la pregunta How can I make my hash remember the order I put elements into it? de perlfaq4.

Hay algunos ejemplos en estos foros. Busca por la palabra IxHash.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Ordenar hash

Notapor millen » 2012-06-12 01:50 @118

Muchas Gracias.
millen
Perlero nuevo
Perlero nuevo
 
Mensajes: 23
Registrado: 2011-11-19 06:30 @313


Volver a Básico

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 34 invitados