perl 数组快速去除重复元素
生活随笔
收集整理的這篇文章主要介紹了
perl 数组快速去除重复元素
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
這里記錄兩種perl數(shù)組去重的辦法,一種利用哈希(hash),一種直接利用perl自帶的模塊List::MoreUtils內(nèi)部的函數(shù)uniq。
一、利用hash去重
示例代碼如下:
1 #!/usr/bin/perl -w
2 use strict;
3
4 my @list=qw /1 2 3 2 1 4 aa a bb c b bb d/;
5 foreach (@list){print "$_ ";}
6
7 print "
###################
";
8 my %ha;
9 my @uniq=grep{++$ha{$_}<2}@list;
10 foreach (@uniq){print "$_ ";}
基本原理是將原數(shù)組元素作為hash的key,遍歷計(jì)數(shù),grep函數(shù)篩選出只出現(xiàn)一次的key,放入新的數(shù)組@uniq中。
輸出結(jié)果:
1 1 2 3 2 1 4 aa a bb c b bb d 2 ################### 3 1 2 3 4 aa a bb c b d 4
二、利用uniq函數(shù)去重
這個(gè)函數(shù)所在的模塊List::MoreUtils還有很多其他操作數(shù)組的用法,感興趣的可以看看,多了解下,這里附上參考網(wǎng)址:https://metacpan.org/pod/List::MoreUtils
示例代碼如下:
1 #!/usr/bin/perl -w
2 use strict;
3 use List::MoreUtils ':all';
4
5 my @list=qw /1 2 3 2 1 4 aa a bb c b bb d/;
6 foreach (@list){print "$_ ";}
7
8 print "
###################
";
9 my @uni=uniq(@list);
10 foreach (@uni){print "$_ ";}
11
直接調(diào)用uniq()函數(shù)即可,輸出結(jié)果如下:
1 1 2 3 2 1 4 aa a bb c b bb d 2 ################### 3 1 2 3 4 aa a bb c b d
作者:天使不設(shè)防
出處:https://www.cnblogs.com/mmtinfo/
本文版權(quán)歸作者和博客園共有,歡迎轉(zhuǎn)載,但未經(jīng)作者同意必須保留此段聲明,且在文章頁(yè)面明顯位置給出原文連接,否則保留追究法律責(zé)任的權(quán)利.
總結(jié)
以上是生活随笔為你收集整理的perl 数组快速去除重复元素的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: ROS教程1 消息查看和使用服务
- 下一篇: 怎么创建具有真实纹理的CG场景岩石?