perl hash 常见用法
来源:互联网 发布:二炮有多厉害知乎 编辑:程序博客网 时间:2024/05/20 10:51
perl hash 常见用法
基本用法
# 初始化 %h为空数组
%h = {};
# 用数组初始化%h为 a=>1, b=>2
%h = ('a', 1, 'b', 2);
# 意义同上,只是另一种更形象化的写法。
%h = ('a'=>1, 'b'=>2);
.
得到hash的所有键值
# 得到所有keys,顺序取决于hash函数,或者说是乱序
@all_keys = keys %h;
# 所有键值,是按hash的值从大往小排列的。值的比较是数字比较(比如说,10>9)
@all_keys = sort{$h{$b}<=>$h{$a}} (keys %h);
# 所有键值,是按hash的值从小往大排列的。值的比较是数字比较
@all_keys = sort{$h{$a}<=>$h{$b}} (keys %h);
# 所有键值,是按hash的值从小往大排列的。值的比较是字符串比较
#(比如说,‘10’ < ‘9’)
@all_keys = sort{$h{$a} cmp $h{$b}} (keys %h);
判断hash是否包含key
exists($h{$key});
Hash的长度
想要知道一个hash有多少<key, value>,常见的方法是得到包含所有键值的数组。这个数组的长度就是hash的长度:<
遍历一个hash中所有的<key, value>
.while (my ($k, $v) = each %h) {
print "$k ---> $v/n";
}
Reference
$h_ref = /%h; # 获得一个hash的reference
%aHash = %{$h_ref};# 把hash reference当成hash用
$value = $h_ref->{akey} # 这个和%h{akey}是一样的
实例:
有一份用户名列表,存储了 10000 个用户名,没有重复项;
还有一份黑名单列表,存储了 2000 个用户名,格式与用户名列表相同;
现在需要从用户名列表中删除处在黑名单里的用户名,要求用尽量快的时间处理。
#!/usr/bin/perl
for(my $i = 0; $i < @arrayN; ++$i)
{
for (my $j = 0; $j < @arrayM; ++$j)
{
if ($arrayN[$i] eq $arrayM[$j])
{
$arrayM[$j] = undef;
}
}
}
两层循环的话要执行10000*2000次
#!/usr/bin/perl
my %arrayHash;
for(my $i = 0; $i < @arrayN; ++$i)
{
$arrayHash{$arrayN[$i]} = 1;
}
for(my $i = 0; $i < @arrayM; ++$i)
{
if ($arrayHash{$arrayM[$i]})
{
$arrayM[$i] = undef;
}
}
现在只需执行10000+2000次
基本用法
# 初始化 %h为空数组
%h = {};
# 用数组初始化%h为 a=>1, b=>2
%h = ('a', 1, 'b', 2);
# 意义同上,只是另一种更形象化的写法。
%h = ('a'=>1, 'b'=>2);
.
得到hash的所有键值
# 得到所有keys,顺序取决于hash函数,或者说是乱序
@all_keys = keys %h;
# 所有键值,是按hash的值从大往小排列的。值的比较是数字比较(比如说,10>9)
@all_keys = sort{$h{$b}<=>$h{$a}} (keys %h);
# 所有键值,是按hash的值从小往大排列的。值的比较是数字比较
@all_keys = sort{$h{$a}<=>$h{$b}} (keys %h);
# 所有键值,是按hash的值从小往大排列的。值的比较是字符串比较
#(比如说,‘10’ < ‘9’)
@all_keys = sort{$h{$a} cmp $h{$b}} (keys %h);
判断hash是否包含key
exists($h{$key});
Hash的长度
想要知道一个hash有多少<key, value>,常见的方法是得到包含所有键值的数组。这个数组的长度就是hash的长度:<
遍历一个hash中所有的<key, value>
.while (my ($k, $v) = each %h) {
print "$k ---> $v/n";
}
Reference
$h_ref = /%h; # 获得一个hash的reference
%aHash = %{$h_ref};# 把hash reference当成hash用
$value = $h_ref->{akey} # 这个和%h{akey}是一样的
实例:
有一份用户名列表,存储了 10000 个用户名,没有重复项;
还有一份黑名单列表,存储了 2000 个用户名,格式与用户名列表相同;
现在需要从用户名列表中删除处在黑名单里的用户名,要求用尽量快的时间处理。
#!/usr/bin/perl
for(my $i = 0; $i < @arrayN; ++$i)
{
for (my $j = 0; $j < @arrayM; ++$j)
{
if ($arrayN[$i] eq $arrayM[$j])
{
$arrayM[$j] = undef;
}
}
}
两层循环的话要执行10000*2000次
#!/usr/bin/perl
my %arrayHash;
for(my $i = 0; $i < @arrayN; ++$i)
{
$arrayHash{$arrayN[$i]} = 1;
}
for(my $i = 0; $i < @arrayM; ++$i)
{
if ($arrayHash{$arrayM[$i]})
{
$arrayM[$i] = undef;
}
}
现在只需执行10000+2000次
- perl hash 常见用法
- perl hash 常见用法
- perl hash 常见用法
- perl哈希hash的常见用法介绍
- perl哈希hash的常见用法介绍
- perl-hash的用法
- Perl中hash的用法
- Perl Hash用法之入门教程
- hash 在 perl 中的用法
- perl die 常见用法
- Perl (hash)
- perl hash
- perl hash
- perl hash
- perl hash
- 常见hash
- perl hash operate
- Perl => Hash
- 堆排序和优先级队列
- chap 13:重载操作符与转换、重载函数的匹配(转)
- 两个表左连接取数只取一行
- 最近研究了一些东西,抽空该整理更新下了!!
- JavaScript 读取、写入Txt文档
- perl hash 常见用法
- android service
- perl-数组的用法
- 脚印
- android获得Bitmap的三种方法
- 新浪微博首页文字淡入淡出滚动效果
- Unix网络编程代码 第13章 守护进程和inetd超级服务器
- jsp有哪些内置对象?作用分别是什么? 分别有什么方法?--好多公司笔试题(用不着也的学着背下)
- 新浪微博技术架构分析