Schrift
[thread]9173[/thread]

Array vergleichen

Leser: 1


<< >> 8 Einträge, 1 Seite
wandasia
 2007-07-10 12:56
#78323 #78323
User since
2006-09-28
6 Artikel
BenutzerIn
[default_avatar]
Hi ich hoffe ihr könnt mir helfen und zwar möchte ich folgendes machen:

Ich habe ein Array1 und ein Array2
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
my @array1 = ("A","A","A","B","C");
my @array2 = ("a","b","c","d","e");
#nun soll verglichen werden, wenn Array 1 gleich ist also hier die #ganzen A's dann soll Array 2 an den stellen zusammengefasst #werden => array1 wird A,B,C und array2 wird 123,1,1 also beide #haben nur noch drei Einträge

#mein Versuch

my $y=0;
my @array2_new;
my @array1_new;
for my $i(0..scalar(@array1)-1){

if ($array1[$i] eq $array1[$i+1]){
$array1_new[$y] = $array1[$i];
if ($array2_new[$y] ne ""){
$array2_new[$y]= $array2_new[$y].$array2[$i].$array2[$i+1];
}
else{ $array2_new[$y]= $array2[$i].$array2[$i+1];}
}
elsif ($array1[$i] ne $array1[$i+1]
&& $array1[$i-1] ne $array1[$i]){
$y++;
$array1_new[$y] = $array1[$i];
$array2_new[$y] = $array2[$i];


}


}


Ausgabe für $array1_new[0],$array2_new[0] ist -> A,abbc und richtig wäre A,abc


Ich hoffe ihr könnt mir helfen und dass ich mich einigermaßen verständlich ausgedrückt habe.
Danke
wandasia
renee
 2007-07-10 13:48
#78324 #78324
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#!/usr/bin/perl

use strict;
use warnings;
use Data::Dumper;

my @array1 = ("A","A","A","B","C");
my @array2 =  ("a","b","c","d","e");

my %seen;
my @tmp;

for my $i ( 0.. $#array1 ){
    push @tmp, $array1[$i] unless exists $seen{ $array1[$i] };
    push @{ $seen{ $array1[$i] } }, $i;
}

@array1 = @tmp;
undef @tmp;

for my $j ( 0..$#array1 ){
    my $elem = $array1[$j];
    $tmp[$j] = join '', @array2[ @{ $seen{$elem} } ];
}

@array2 = @tmp;

print Dumper \@array1, \@array2;
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
RPerl
 2007-07-12 15:32
#78325 #78325
User since
2006-11-26
384 Artikel
BenutzerIn

user image
Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#!/usr/bin/perl

use strict;
use warnings;


# 0, 1, 2
my @array1 = ("x","y","z");
my @array2 = ("x","y","y");

for(my $i = 0; $i < 3; $i++) {
    if($array1[$i] ne $array2[$i]) {
        print "Array1 ist an stelle $i nicht gleich mit Array2\n";
    }
}


renee's ist immer so kompliziert *g*
Relais
 2007-07-12 17:47
#78326 #78326
User since
2003-08-06
2244 Artikel
ModeratorIn
[Homepage] [default_avatar]
[quote=RPerl,12.07.2007, 13:32]renee's ist immer so kompliziert *g*[/quote]
Hmm, @renees
Code (perl): (dl )
for my $i ( 0..$#array1 ){
ist allerdings weniger kompliziert und aus Perl-Programmersicht "besser" (weil konziser und flexibler) als [quote=RPerl,12.07.2007, 13:32]
Code (perl): (dl )
for(my $i = 0; $i < 3; $i++) {
[/quote]

edit: Und die Aufgabe hast Du nicht vollständig gelöst... das finde ich allerdings gar nicht schlecht, Fragesteller sollen ja nicht gleich alles geschenkt kriegen ;-)\n\n

<!--EDIT|Relais|1184248136-->
Erst denken, dann posten --
26. Deutscher Perl- u. Raku -Workshop 15. bis 17.04.2024 in Frankfurt/M.

Winter is Coming
renee
 2007-07-12 22:13
#78327 #78327
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
[quote=RPerl,12.07.2007, 13:32]renee's ist immer so kompliziert *g*[/quote]
Und Deins erfüllt die Aufgabe nicht *fg*
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
RPerl
 2007-07-13 12:29
#78328 #78328
User since
2006-11-26
384 Artikel
BenutzerIn

user image
Ja, hab ich absichtlich gemacht, dass er noch nachdenken muss :D
Nein, ehrlich: ich hab nur den threadtitel gelesen und gedacht, dass weurde ich so machen ... es ist aber eh gefaehrlich meinen code zu benutzen *g*
renee
 2007-07-13 13:25
#78329 #78329
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
[quote=RPerl,13.07.2007, 10:29][...] es ist aber eh gefaehrlich meinen code zu benutzen *g*[/quote]
warum?
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
RPerl
 2007-07-13 21:18
#78330 #78330
User since
2006-11-26
384 Artikel
BenutzerIn

user image
Weil er nicht an die Sauberkeit von deinem rankommt und oft ungetestet ist. :blush:
<< >> 8 Einträge, 1 Seite



View all threads created 2007-07-10 12:56.