知识的价值不在于占有,而在于使用。

生信自学网-速科生物-生物信息学数据库挖掘视频教程

当前位置: 主页 > 生信编程 >

Perl生信应用哈希hash

时间:2019-07-30 11:22来源:生信自学网 作者:乐伟 点击:
perl编程在生物信息学的应用,哈希对生物信息文本处理作用强大
生信Perl编程
哈希(%)
哈希的定义
哈希是英译(它的英文名叫Hash,也可以译作『散列』,以下为了文字都写作『哈希』),就是把任意长度的输入(也叫预映射,pre-image),通过哈希算法,变换成固定长度的输出,该输出就是哈希值(value)——哈希 = 预映射(键,key) + 哈希值(值,value)
通过哈希算法进行的这种转换是一种压缩映射,也就是,哈希值的空间通常小于输入的空间,不同的输入可能形成相同的输出,所以不可能从哈希的值来确定唯一的输入值(不妨想想一个在某一区间上不单调的函数,有助于理解)

哈希表(Hash Table)
是根据存储数据的关键码直接进行访问的数据结构,也就是说,它直接把关键码也映射到表中的一个位置来访问记录(这个映射函数就是哈希函数),存放记录的数组就叫『哈希表』
1、哈希是key/value对的集合
如何理解键/值对呢?举个例子,比如我们的身份证号码,一个名字对应着一个身份证号码,在这里身份证号码就是键,键必须是唯一的,名字就是值,值可以重复。
使用哈希的好处:读取速度快,因为键是唯一的,所以找到key,就可以很快找到value。

2、Perl中哈希编程已百分号(%)标记开始
3、访问哈希元素格式:${key}
接下来,我们定义一个简单的哈希:

###Video source: http://study.163.com/provider/1026136977/index.htm?share=2&shareId=1026136977
######Video source: http://www.biowolf.cn/shop/
######生信自学网: http://www.biowolf.cn/
######合作邮箱:2749657388@qq.com
######答疑微信: 18520221056
use strict;
use warnings;
my %hash1=('biowolf','biowolf.cn','jingdong','jd.com','taobao','taobao.com');

print"$hash1{'biowolf'}\n";
print"$hash1{'jingdong'}\n";
print"$hash1{'taobao'}\n";

遍历哈希:

use strict;
use warnings;
my %hash1=('biowolf','biowolf.cn','jingdong','jd.com','taobao','taobao.com');

print"$hash1{'biowolf'}\n";
print"$hash1{'jingdong'}\n";
print"$hash1{'taobao'}\n";
哈希增加元素:
use strict;
use warnings;
my %hash1=('biowolf','biowolf.cn','jingdong','jd.com','taobao','taobao.com');

$hash1{'baidu'}='baidu.com';
foreach my $key(keys %hash1){
	print $key."\t";
  print $hash1{$key} . "\n";
}

哈希删除元素:
use strict;
use warnings;
my %hash1=('biowolf','biowolf.cn','jingdong','jd.com','taobao','taobao.com');

delete($hash1{'jingdong'});
foreach my $key(keys %hash1){
	print $key."\t";
  print $hash1{$key} . "\n";
}

判断是否存在key

use strict;
use warnings;
my %hash1=('biowolf','biowolf.cn','jingdong','jd.com','taobao','taobao.com');

if(exists $hash1{'biowolf'}){
	print "it is exists\n";
}
else{
	print "it isn't exists\n";
}


如果需要快递学习perl在生信中的应用,可以学习我们娥课程《Perl在生物信息学应用》
加生信自学网群
责任编辑:伏泽
作者申明:本文版权属于生信自学网(微信号:18520221056)未经授权,一律禁止转载!
BioWolf二维码生成器
------分隔线----------------------------
GEO芯片数据库挖掘生信视频教程
推荐内容
TCGA数据库挖掘文章套路生信视频教程
中药复方网络药理学文章套路生信视频教程