1.哈希特点

哈希是一种数据结构,与数组相同点,能容纳任意多的值;而哈希的检索方式与数组不同。数组是以数字下标检索,而哈希中的值(value)以唯一的名字(key)检索。

key-value一一对应:

乱序排列,类似一桶数据:

由于检索方式不同,当使用哈希时,能提高对大数据量中的读写性能。

2.哈希的使用

%some_hash = ('foo', 35, 'bar', 12.4, 2.5, 'hello', 'wilma' ,1.77878e12, 'da', "ada\n");    #创建一个哈希数组,以前key后value,一一对应#改进版创建哈希
my %last_name = ('fred'    => 'filtstone',   #  '=>'等效于‘,’,更能区分key与value'betty'   => 'rubble',   'dino'    => undef,
);$hash{$some_key};            #访问哈希中的元素@any_array = %some_hash;     #以无序形式返回键-值对应的列表,key与它对应的value相邻   

3.哈希操作函数

3.1 keys和values函数

keys函数能返回哈希的键列表,values函数能返回对应的值列表。

my %hash = ('foo', 35, 'bar', 12.4, 2.5, 'hello', 'wilma' ,1.77878e12, 'da', "ada\n");  my @k = keys %hash;  #返回值包含所有奇数位置的keymy @v = values %hash;#返回所有偶数位置的value,返回顺序不固定,但key与value的相对位置保持一致

3.2 each函数

each函数能遍历哈希中的每个键-值对,返回两个元素,一个是键名,一个是值。

while (($key,$value) = each %hash){print"$key => $value\n";
}

3.3 exists函数

若要检查哈希中是否存在某个键,可以使用exists函数检查,键存在就会发返回真,键不存在返回假,与值无关。

if (exists $books{"dino"}){print"Hey,there's a library card for dino!\n";
}

3.4 delete函数

delete函数能从哈希中删除指定的键与对应的值。

my $person = "dada";
delete $book{$person}; #该键-值对被删除

3.5哈希元素内插

foreach $person (sort keys $books){if($books{$person}){print"$person has $books{$person} item\n";}
}

《Perl语言入门》读书笔记(六)哈希相关推荐

  1. 阮一峰ES6入门读书笔记(十六):Moudle

    阮一峰ES6入门读书笔记(十六):Moudle 在 ES6 之前,社区制定了一些模块加载方案,最主要的有 CommonJS 和 AMD 两种.前者用于服务器,后者用于浏览器.ES6 在语言标准的层面上 ...

  2. Go语言实战读书笔记

    2019独角兽企业重金招聘Python工程师标准>>> Go语言实战读书笔记 第二章 通道(channel).映射(map)和切片(slice)是引用类型.引用类型的对象需要使用ma ...

  3. 3d游戏设计读书笔记六

    3d游戏设计读书笔记六 一.改进飞碟(Hit UFO)游戏: 游戏内容要求: 按 adapter模式 设计图修改飞碟游戏 使它同时支持物理运动与运动学(变换)运动 更改原 UFO_action 类 为 ...

  4. QT Creator快速入门读书笔记:新建HelloWorld工程

    窗口部件 QMainWindow是带有菜单栏和工具栏的主窗口类,QDialog是各种对话框的基类,QWidget类是所有用户界面对象的基类,被称为基础窗口部件.QWidget继承自QObject类和Q ...

  5. QT Creator快速入门读书笔记:窗口部件初探

    QWidget基础窗口部件 Qt把没有嵌入到其他部件中的部件称为窗口,一般窗口都有边框和标题栏,就像程序中的widget和label一样.QMainWindow和大量的QDialog子类是最一般的窗口 ...

  6. 阮一峰ES6入门读书笔记(七):运算符的拓展

    阮一峰ES6入门读书笔记(七):运算符的拓展 1. 指数运算符 ES6新增了一个指数运算符(**). 2 ** 2 // 4 2 ** 3 // 8 这个运算符的一个特点是右结合,而不是常见的左结合. ...

  7. c语言指针读书笔记,《C与指针》读书笔记一

    我平时不太看书.倒不是我没有读书的习惯.而是如今的社会知识传播的方式太多.书已经不是唯一知识的载体.至于"书是人类知识的阶梯"这句名言的时代已经过去了.每天各种微信公众号推介的文章 ...

  8. 基因检测之《生命的语言》读书笔记

    自从高中毕业选择生物工程专业入行,到研究生阶段微生物学的学习,再到工作开始做基因检测方面的工作,很庆幸基本上在生命科学领域学习和工作.每月去一次的图书馆,让我对科技的好奇心得以保持,互联网的畅达,让我 ...

  9. c语言指针读书笔记,《C与指针》读书笔记九

    原标题:<C与指针>读书笔记九 指针之所以在C语言中占据很大分量,是因为指针有很大的灵活性.指针以结构体结合确实为程序的编写提供了一把锋利无比的宝剑.在有些资料上介绍结构体是多种数据集合, ...

  10. c语言程序设计读书笔记3000字,C语言程序设计读书笔记题目

    读书笔记注意事项: 1. 读书笔记要求至少有六个题目,在一类.二类.三类题目中各选两题,具体题目选择由学生自行选择. 2. 每个题目必须包含所选题目,以及具体题目的程序实现过程,要求每行语句后都需要有 ...

最新文章

  1. linux下启动jconsole报 java.lang.UnsatisfiedLinkError
  2. cocos2d-x游戏开发(九)重要的基类CCNode
  3. 演练 制作爱奇异视频播放列表 0929
  4. 滴滴开源夜莺 Nightingale:企业级监控解决方案
  5. unity常用的引用赋值一个GameObject的三种方法
  6. centos 7 安装pip
  7. Cnskype移动办公现状分析管理
  8. 鼎捷易飞ERP视频教程-金速鹏-专题视频课程
  9. cJSON使用详细教程 | 一个轻量级C语言JSON解析器
  10. 利用IE登陆windows 2003 的终端服务器
  11. 数学建模——国赛写作模板篇
  12. Vuex_Todos
  13. Brute-Force模式匹配算法
  14. C语言程序设计现代方法(第二版)十二章课后练习题部分答案
  15. [转]MATLAB 主要函数指令表(按功能分类)
  16. som聚类用matlab实现,使用SOM对数据进行聚类
  17. shineblink HC-SR505人体红外感应传感器
  18. sqlyog安装和破解
  19. 北大才女笔记:这样学习线性回归和梯度下降(上篇)
  20. mysql语句group by用法详解

热门文章

  1. Oracle PrimaveraUnifier 之数据要素(Data Element)
  2. 椭圆曲线加密概览(二)
  3. java(某人在玩游戏的时候输入密码112233后成功进入游戏(输错3次则被强行退出),要求用程序实现密码验证的过程。)
  4. java中mdc是什么_MDC是什么鬼?用法、源码一锅端
  5. 大学生数学建模优秀论文发表
  6. 汽车驾驶学习-驾驶技巧:倒车速成
  7. html页面怎么加锚点,html页面添加锚点
  8. 墨天轮高分技术文档分享——Oracle升级迁移篇(共96个)
  9. 【红外技术】红外热成像在雨雾天的能看多远?
  10. 支付宝小程序自定义Map地图marker