知識的價值不在于占有,而在于使用。

生信自學網-速科生物-生物信息學數據庫挖掘視頻教程

當前位置: 主頁 > 生信編程 >

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.hbnisg.live/shop/
######生信自學網: http://www.hbnisg.live/
######合作郵箱:[email protected]
######答疑微信: 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二維碼生成器
頂一下
(1)
100%
踩一下
(0)
0%
------分隔線----------------------------
發表評論
請自覺遵守互聯網相關的政策法規,嚴禁發布色情、暴力、反動的言論。
評價:
表情:
用戶名: 驗證碼:點擊我更換圖片
TCGA腫瘤微環境
推薦內容
單基因發文套路
m6A