+ -
当前位置:首页 → 问答吧 → delete删除重复的键值对

delete删除重复的键值对

时间:2011-03-12

来源:互联网

大家好:
我的目的是想 把hash里有重复的键值对去掉。只保留一对就行。意思是说:在一个hash里有两个值 相同,那么就删去掉 其中的一个值和这个值对应的键。

备注:我文件里的键没有重复的,值有很多重复的。 如何实现?给个思路就行。谢谢大家。

作者: leigh111   发布时间: 2011-03-12

  1. #!perl
  2. use Data::Dumper;
  3. my %h=(
  4. A=>1,
  5. B=>1,
  6. C=>2,
  7. D=>1,
  8. E=>2,
  9. F=>3,
  10. G=>1,
  11. H=>2,
  12. );
  13. my $lastvalue;
  14. for (sort { $h{$a} cmp $h{$b}} keys%h) {
  15.         if ($h{$_} eq $lastval){
  16.                 delete $h{$_};
  17.         }else{
  18.                 $lastval=$h{$_};
  19.         }
  20. }

  21. print Dumper \%h;
复制代码
空值可能被删掉。。。求CPAN版本。。。

作者: ttcn_cu   发布时间: 2011-03-12