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详解

Spark入门--Spark的combineByKeysortBykey

在哈希中条件包含键值对[关闭]

CAPL中的键值对(hash)数据类型

CAPL中的键值对(hash)数据类型

HashMap