perl 怎么增加hash键值对
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了perl 怎么增加hash键值对相关的知识,希望对你有一定的参考价值。
就是哈希之前已经定义了,然后现在需要再增加一些键值对,怎么输入?
比如通过某个循环得到一个key和一个value,怎么把这一对加进去?
另外最好再回答下怎么对hash的values进行排序,得到的结果存进另一个数组
my %hash = (1,2,3,4); #初始化
my $key = 'a';
my $value = 'b';
$hash$key = $value; #说的是这个?
对哈希的values进行排序, my @sort_values = sort(values %hash); 参考技术A 就这样加上去就好...
%h = ( A=>'a', B=>'b' ) ;
foreach ( 'C' .. 'Z' )
$h$_ = lc $_; # Key = Value
print "$h = $h$_" foreach sort keys %h;
@order = sort values %h; # 如果你的 values 是文字
@order = sort $a<=>$b values %h; # 如果你的 values 是数字
@rev_order = reverse sort values %h ; # 文字 + 反序
@rev_order = sort $b<=>$a values %h ; # 数字 + 反序
Redis hash(哈希)相关命令
Redis hash可储存多个键值对,适合储存对象的属性。
1、hset key fieldName fileValue //hset即hash set,set这里是设置的意思。往hash中添加一个字段(键值对)
示例:
hset score zhangsan 90 //score是hash的名称,zhangsan 90是一个键值对。若zhangsan这个字段名之前不存在,则添加成功返回1。
hset score lisi 85 //一个hash可储存多个键值对(40多亿)。
hset score lisi 100 //之前这个hash中已存在lisi这个字段名,会覆盖原来的字段值,返回0.
2、hsetnx key fieldName fieldValue //多了后缀nx,同上,只是如果这个hash中已存在fieldName,则不执行操作(不覆盖原来的值),此时返回0。即当这个hash中fieldName不存在时才添加字段。
3、hmset key fileName1 fieldValue1 fieldName2 fieldValue2 ...... //同时添加多个字段。hmset即hash multiple set,因为是set所以字段已存在时会覆盖原有的值。
4、hget key fieldName //获取指定字段的值
5、hmget key fieldName1 fieldName2 ..... //同时获取一个或多个字段的值
6、hgetall key //获取所有字段的值,会同时显示fieldName、fieldValue。hgetall即hash get all。
7、hdel key fieldName1 fieldName2 .... //删除一个或多个字段
8、hexists key fieldName //检查该字段是否已存在,已存在则返回1,该fieldName不存在或key不存在,则返回0
9、hlen key //获取hash中的字段(键值对)数量
10、hkeys key //获取hash中所有的feildName
11、hvals key //获取hash中所有的fieldValue
12、hscan key cursor [match pattern] [count count] //迭代hash中的键值对
13、hincrby key fieldName acount //将指定字段的值增加acount。原来的字段值、acount都要是整数,否则提示错误。
示例:
hincrby score lisi 5 //返回操作后的字段值,假如之前lisi的值是80,则返回85
hincrby score lisi -10 //acount支持负整数,即减。
14、hincrbyfloat key fieldName acount //同上,但是支持浮点数,就是说整数、浮点数都行。
说明:
- 没有hincr这个命令(+1)
- 没有提供hdecr命令(减)。
- 都带有前缀h表示hash
以上是关于perl 怎么增加hash键值对的主要内容,如果未能解决你的问题,请参考以下文章
HashMapHashTableConcurrentHashMap详解