我有兩個數組@Results和@結果2它們之間有一個數字的羣衆。 e.g(12345678 182937439 18329741等)查找唯一值在兩個數組 - Perl的
在兩個數組,如果我將它們結合在一起,我能得到重複,我不想。我想比較兩個數組,保留唯一值並逐一打印。
任何幫助,請將不勝感激......
我有兩個數組@Results和@結果2它們之間有一個數字的羣衆。 e.g(12345678 182937439 18329741等)查找唯一值在兩個數組 - Perl的
在兩個數組,如果我將它們結合在一起,我能得到重複,我不想。我想比較兩個數組,保留唯一值並逐一打印。
任何幫助,請將不勝感激......
因此重複數據刪除陣列。此代碼從List::MoreUtils
uniq
功能借來的:
sub uniq {
my %seen;
grep { !$seen{$_}++ } @_;
}
my @unique = uniq(@results, @results2);
完美!謝謝TLP! – user2320229 2013-04-25 15:00:17
@ user2320229不客氣。 – TLP 2013-04-25 15:04:07
使用散列數值可有點玄乎,特別是如果這些值浮點。 '200','0200','200.0'和'2E2',在許多其他之中,可能都代表相同的值。即使值都保證是整數,它可能是最好的應用'{地圖sprintf的「%d」,$ _} @ data'使一切均勻。 – Borodin 2013-04-25 15:32:34
每當你想到「獨特的」思考「哈希」
#!/usr/bin/perl
use strict;
use warnings;
my @a = qw(1 2 3);
my @b = qw(3 4 5);
my %x = map { $_ => 1 } @a, @b;
print join ", ", keys %x; # 4, 1, 3, 2, 5
型'的perldoc -q duplicate'在命令提示符。 – 2013-04-25 14:47:09