Thread Arrays: Pärchen zählen (12 answers)
Opened by hugenyn at 2012-01-28 01:17

FIFO
 2012-01-28 09:09
#155735 #155735
User since
2005-06-01
469 Artikel
BenutzerIn

user image
Das kommt darauf an, was Du erreichen willst. In Deinem Beispiel entfernst Du (nur) das erste vorkommende Paar-Element aus dem @mann-Array, warum? Was soll passieren, wenn ein Element in @frau mehrfach vorkommt, aber in @mann nur einmal? Oder in beiden Arrays mehrfach?
Bei größeren Arrays ist es oft effizienter, statt der wiederholten Iteration die Array-Elemente als Keys eines Hashes abzulegen und dann lookups durchzuführen, zum Beispiel gibt folgendes die Zahl der Paare aus, die mindestens einmal gefunden wurden (ohne etwas zu entfernen):

Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
use strict;
my @frau = qw /bl ge gr br sw rt/;
my @mann = qw /ge bl bl br sw rt/;
my $paar;

my %fr = map { $_, 1 } @frau;
my %ma = map { $_, 1 } @mann;
for (keys %ma) {
    $paar++ if exists $fr{$_};
}
print "Paare: $paar\n";


Editiert von FIFO: Typo, Arrays fehlten
Last edited: 2012-01-28 11:21:54 +0100 (CET)
Everyone knows that debugging is twice as hard as writing a program in the first place. So if you're as clever as you can be when you write it, how will you ever debug it? -- Brian Kernighan: "The Elements of Programming Style"

View full thread Arrays: Pärchen zählen