Thread Arrays zusammenführen/mergen (16 answers)
Opened by styx-cc at 2020-03-13 21:20

haj
 2020-03-14 18:43
#191538 #191538
User since
2015-01-07
532 articles
BenutzerIn

user image
Nur zum Vergnügen: Auch das ist eine Aufgabe, die man in Perl mit den Funktionen Perldoc:perlfunc map und Perldoc:perlfunc grep erschlagen kann.

Mit grep fischt man sich die Schlüssel raus, die erhalten bleiben, und danach baut man deren Inhalt mit map zusammen.
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
#!/usr/bin/perl
use strict;
use warnings;
use Data::Dumper;

my $ranges =
{
  1282 => [    25,    40,     5, undef ],
  1283 => [   300,   400,    25, 1282  ],
  1284 => [    20,    30,     5, undef ],
  1285 => [   250,   260,    10, 1284  ],
  1286 => [    25,    30,     5, undef ],
  1287 => [ 0.003, 0.005, 0.001, 1286  ],
};

my %merged = map
    { $_ => [@{$ranges->{$_}}[0..2], @{$ranges->{$ranges->{$_}[3]}}[0..2]] }
    grep { defined $ranges->{$_}->[3] }
    keys %$ranges;

print "EDITED RANGES:\n";
print Dumper \%merged;

View full thread Arrays zusammenführen/mergen