+ -
当前位置:首页 → 问答吧 → 求助,,数组比较问题?

求助,,数组比较问题?

时间:2010-10-12

来源:互联网

#!/usr/bin/perl

use strict;
use warnings;

my @array = (1,2,3,3,4,4,5);

my %diff;
my %same;

my @diff = grep( !$diff{$_}++, @array );
my @same = grep( $same{$_}++,  @array );

print "@diff\n";
print "@same\n";



这样能得到该数据组的不同元素{1,2,3,4,5}和相同元素{3,4},那么如何得到这样一个数组呢,{1,2,5},也就是将重复的元素都删除掉,请兄弟们多指教,谢谢!

作者: huifeideluotuo   发布时间: 2010-10-12

在你的程序后加上以下代码:
  1. my @filter;
  2. foreach (keys %diff) { push(@filter,$_) if ($diff{$_} == 1); }
  3. print @filter;
复制代码

作者: iamlimeng   发布时间: 2010-10-12

自己也搞定了,还是很感谢楼上的兄弟,貌似这样更简单

foreach my $wanted (@same) {
    @diff = grep { $_ ne "$wanted" } @diff;
}
print "@diff\n";

作者: huifeideluotuo   发布时间: 2010-10-12

Array::Diff

作者: 兰花仙子   发布时间: 2010-10-12



QUOTE:
Array:iff
兰花仙子 发表于 2010-10-12 18:30



谢谢,兰花姐姐,小弟再用这个试验下。

作者: huifeideluotuo   发布时间: 2010-10-12