《Perl编程24学时教程》笔记第7课 perl的哈希结构

发布时间:2020-07-03编辑:脚本学堂
本文分享《Perl编程24学时教程》笔记第7课时的内容,介绍下 perl的哈希结构,有需要的朋友参考下。

第7课时  哈希结构

哈希元素包含两部分,一个关键字和一个值,以%(百分号)标识。

一、将数据填入哈希结构
对哈希元素赋值:$HashName{'key'}=value或$HashName{key}=value;
对哈希结构赋值:%HashName=('key','value',...)或使用=>运算符%HashName=('key'=>'value',...)或%HashName=(key=>'value',...)。

二、从哈希结构中取数据
$HashNam('key')。
keys函数返回的哈希结构的所有关键字。
foreach $HashName (keys %HashName){}用以遍历整个哈希结构。
values函数返回哈希结构中存放的所有值。
reverse函数将交换哈希结构key和value的顺序,重复的value值被忽略。

三、列表与哈希结构
当哈希结构用于列表环境中,哈希结构重新变为关键字和值组成的普通列表。
几个哈希结构可以组合成一个哈希结构,若关键字有重复的,则后一关键字值对取代前一对的值。

四、哈希结构的补充说明
1.测试哈希结构中的关键字
exists函数用于测试哈希结构中是否存在关键字。

2.从哈希结构中删除关键字
delete函数用于从哈希结构中删除关键字。

有关perl哈希结构的文章,相关阅读:
perl哈希hash的常见用法
perl hash一例
perl中hash数组的相关的例子
perl哈希的例子
有关perl 哈希的创建和引用
学习perl哈希数据结构的代码

五、哈希结构的用处
1.确定频率分布
记录频度
 

复制代码 代码示例:
while(<>) {
 while(/(w[w-]*)/g) {
  $Words{$1}++;
 }
}
 

查看频度
 

复制代码 代码示例:
foreach(keys %Words) {
 print " $_ $Words{$_}n";
}

2.在数组中寻找唯一元素
 

复制代码 代码示例:
%seen = ();
foreach(@fishwords) {
 $seen{$_}=1;
}
@uniquewords=keys %seen;

3.寻找数组间的交汇部分和不同部分
寻找交汇部分
 

复制代码 代码示例:
%seen=();
foreach(@stars) {
 $seen{$_}=1;
}
@intersection=grep{$seen{$_},@pols}
 

寻找不同部分
 

复制代码 代码示例:
@intersection=grep{!$seen{$_},@pols}

4.哈希结构排序
按字母顺序排列:

复制代码 代码示例:
sort keys %words

按频率顺序排列:

复制代码 代码示例:
sort {$words{$a} <=> $words{$b} keys %words}