哈希匹配若键有重复的,匹配时会出现什么情况perl

Perl 学习笔记(免费)_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
Perl 学习笔记(免费)
&&Perl 学习笔记
阅读已结束,下载文档到电脑
想免费下载更多文档?
定制HR最喜欢的简历
下载文档到电脑,方便使用
还剩23页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢拒绝访问 |
| 百度云加速
请打开cookies.
此网站 () 的管理员禁止了您的访问。原因是您的访问包含了非浏览器特征(c436a-ua98).
重新安装浏览器,或使用别的浏览器Perl寻找去除数组中重复元素 - Velx - 博客园
随笔 - 13, 文章 - 33, 评论 - 47, 引用 - 0
写一个小程序时候,需要去除一个数组中的重复元素,搜索了一下,找到的代码主要是两种,一种是使用grep函数,一种是转换为hash表,代码分别如下:使用grep函数代码片段:代码:
my @array = ( 'a', 'b', 'c', 'a', 'd', 1, 2, 5, 1, 5 );my %my @uniq_times = grep { ++$count{ $_ } & 2; } @
使用转换hash代码片段:代码:
my @array = ( 'a', 'b', 'c', 'a', 'd', 1, 2, 5, 1, 5 );my %@saw{ @array } = ( );my @uniq_array = sort keys %
使用grep那种方法并不是很好懂,我尝试解释一下,未必说得清楚或者正确。其实就是把数组的每个元素作为一个hash表的key,++之后第一个元素出现的时候值就是1,如果第二次出现这个值就是2了。其实就是统计了数组每个元素的出现次数,少于2次的就放到新的数组当中。我写了个比较好懂的代码,和使用grep方法的代码原理大致相同,但是又不完全一样,代码如下:代码:
my @array = ( 'a', 'b', 'c', 'a', 'd', 1, 2, 5, 1, 5 );my %count_my @uniq_foreach my $value ( @array ){  if( exists( $count_hash{ $value } ) )  {    &  }  else  {    $count_hash{ $value } = 1;    push( @uniq_array, $value );  }}
#!/usr/bin/perl
my @array = (1..10,5,20,2,3,4,5,5);
#grep 保存符合条件的元素
@array = grep { ++$hash{$_} & 2 } @array;
print join(" ",@array);
print "n";}

我要回帖

更多关于 sqlserver 哈希匹配 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信