Schluessel/-Wert sortieren

17/12/2013 - 16:16 von nospam | Report spam
Hallo perl.misc

habe einen Zahlenblock und eine Funktion,
die die Haeufigleit des Vorkommens der Werte
zaehlt:

Funktion :

%hash ;
@block(
[1 2 0 9 8 7],
[0 8 8 2 2 1],
[2 3 4 2 2 2],
[9 9 1 1 2 2],
)

foreach ( @block ) {
for ( @$_ ) {
$hash{ $_ } ++ ;
}
}

ich moechte %hash nicht nach Haeufigkeit sondern nach Eigenschaft
sortieren und ausgeben . Ungefaehr so :
0 -> 2
1 -> 4
2 -> 8
3 -> 1 usw.
Nach Haeufigkeit klappt es nach Eigenschaft nicht.
Danke.
 

Lesen sie die antworten

#1 Bjoern Hoehrmann
17/12/2013 - 16:43 | Warnen spam
* Melanie Schulze wrote in de.comp.lang.perl.misc:
habe einen Zahlenblock und eine Funktion,
die die Haeufigleit des Vorkommens der Werte
zaehlt:

Funktion :

%hash ;
@block>(
[1 2 0 9 8 7],
[0 8 8 2 2 1],
[2 3 4 2 2 2],
[9 9 1 1 2 2],
)

foreach ( @block ) {
for ( @$_ ) {
$hash{ $_ } ++ ;
}
}

ich moechte %hash nicht nach Haeufigkeit sondern nach Eigenschaft
sortieren und ausgeben . Ungefaehr so :
0 -> 2
1 -> 4
2 -> 8
3 -> 1 usw.



Mir ist nicht klar was Du mit "Eigenschaft" meinst, aber einfach nach
Zahl sortieren wàre sowas hier:

my %hash;
my @block = (
[qw[1 2 0 9 8 7]],
[qw[0 8 8 2 2 1]],
[qw[2 3 4 2 2 2]],
[qw[9 9 1 1 2 2]],
);

foreach (@block) {
for (@$_) {
$hash{$_}++;
}
}

for (sort { $a <=> $b } keys %hash) {
printf "%s -> %u", $_, $hash{$_};
}

Das gibt aus

0 -> 2
1 -> 4
2 -> 9
3 -> 1
4 -> 1
7 -> 1
8 -> 3
9 -> 3
Björn Höhrmann · mailto: · http://bjoern.hoehrmann.de
Am Badedeich 7 · Telefon: +49(0)160/4415681 · http://www.bjoernsworld.de
25899 Dagebüll · PGP Pub. KeyID: 0xA4357E78 · http://www.websitedev.de/

Ähnliche fragen