Doppelte Listenelemente entfernen
Stefan
- perl
Hallo, ich bastle grad an Perl herum und hab ein kleines Problem.
Ich suche nach einer Möglichkeit doppelte(oder gar mehrfache) Elemente aus einer Liste zu entfernen. Vielleicht gibt es ja einen schönen einfachen Befehl mit dem das prima geht....*hoff*
bin für jeden Hinweis dankbar
Stefan
Hallo Stefan,
so zum Beispiel:
%hash = ();
foreach $wert (@liste){
$hash{$wert}++;
}
@neue_liste = keys %hash;
In neue Liste stehen dann die einzelnen Elemente
gruss
vom
Horst
Hallo Stefan,
so zum Beispiel:
%hash = ();
foreach $wert (@liste){
$hash{$wert}++;
}
@neue_liste = keys %hash;
In neue Liste stehen dann die einzelnen Elementegruss
vom
Horst
Perfekt!!!!!!!
Es hat auf Anhieb funktioniert!! Werd jetzt nur noch ein weilchen brauchen bis ich verstehe was da genau passiert....das dauert bei mir im allgemeinen immer etwas länger.... ;)
Also Recht Herzlichen Dank!!!
Grüßle Stefan
Hallo Stefan,
so zum Beispiel:
%hash = ();
foreach $wert (@liste){
$hash{$wert}++;
}
@neue_liste = keys %hash;
In neue Liste stehen dann die einzelnen Elementegruss
vom
HorstPerfekt!!!!!!!
Es hat auf Anhieb funktioniert!! Werd jetzt nur noch ein weilchen brauchen bis ich verstehe was da genau passiert....das dauert bei mir im allgemeinen immer etwas länger.... ;)
Das ist eigentlich ganz einfach..
Du hast ein Array das z.B. so aussieht:
Schlüssel Wert
0 Horst
1 Stefan
2 Horst
Jetzt durchläufst Du in der Schleife das Array und füllst ein Hash
(hier kannst Du auch Strings als Schlüssel nutzen). Hier füllst Du
die Schlüssel des Hashes mit den Werten des Arrays. Als Werte für
das Hash wird einfach hochgezählt wieviele male der Wert im Array
auftaucht.
Das Hash sieht dann so aus (die Reihenfolge muss nicht so sein)
Schlüssel Wert
Horst 2
Stefan 1
Im letzten Schritt schreibst Du alle Schlüssel des Hashs als Werte
in ein neues Array...
Verstanden??
Gruss
Horst
Viele Dank Horst!
Ich glaub jetzt hats klick gemacht. Auf die Idee einfach die Schlüssel und nicht die Werte des Hashes zu benutzen wär ich glaub ich nie im Leben gekommen. (wie gesagt bei mir dauerts immer länger...)
also nochmals Danke du warst mir eine große und vor allem blitzschnelle Hilfe! **kann ich dir nen Orden verleihen?**
so denn, schönes Wochenende :)
Stefan
Hallo Stefan,
also nochmals Danke du warst mir eine große und vor allem blitzschnelle Hilfe! **kann ich dir nen Orden verleihen?**
Der Dank reicht völlig aus... aber falls Du ein Held in
Elektrotechnik oder Systemtheorie bist...
Viele Grüße und eine schönes Wochenende
Horst