标签: hash-of-hashes

在 Redis 中存储哈希值的哈希值

在 Redis 中存储哈希值的最佳方式是什么,如下所示:

\n\n
id1->{key1->value1, key2->value2, key3->value3\xe2\x80\xa6.} , id3->{key1->value1, key2->value2, key3->value3\xe2\x80\xa6.} \xe2\x80\xa6.\n
Run Code Online (Sandbox Code Playgroud)\n\n

其中key1, key2, key3... 是语言的两个字母代码(en、es 等),但其中一些键可以具有不同的语言集,并且一个键可以具有大约 30 种不同的语言。

\n

ruby hash-of-hashes redis

1
推荐指数
1
解决办法
2866
查看次数

Perl - 哈希的哈希 - 是使用“eval”访问可变长度键序列的唯一选项吗?{k[0]}=>{k[1]}=>

我将保持我的问题的高度,因为这就是我,这就是我的风格,这就是我需要回答的问题。

我有一个多级哈希可以使用(哈希的哈希)。我还有一些算法可以为我提供 @key 中的一系列键(用于查找各种值)。

我获取个人价值观的技巧是:

只需构建一个如下所示的表达式

 $h-> {$key[0] }=> {$key[1]} => ... e.t.c.
Run Code Online (Sandbox Code Playgroud)

然后“评估”该表达式。

是否有更好的技术来处理可变按键序列而不需要 eval?

(哈希是目录结构的镜像。值是单个文件,我的程序需要读取这些文件的内容。)

我尝试过,它适用于 eval 选项。

perl hash-of-hashes

1
推荐指数
1
解决办法
115
查看次数

通过键名从ruby中的多维哈希中提取特定值

假设我有一个多维哈希,并且在其中一个子哈希中我有一个key => value对,我需要通过key检索它.我该怎么做?

示例哈希:

h={:x=>1,:y=>2,:z=>{:a=>{:k=>"needle"}}}
h={:k=>"needle"}
Run Code Online (Sandbox Code Playgroud)

关键是永远:k,我需要得到"针"

我注意到红宝石1.8中的哈希没有"扁平"功能,但如果它在那里,我想我会做的

h.flatten[:k]
Run Code Online (Sandbox Code Playgroud)

我想我需要为此编写一个递归函数?

谢谢

ruby hash hash-of-hashes

0
推荐指数
1
解决办法
2486
查看次数

访问perl中另一个文件中定义的哈希哈希并打印它

现在我的file1包含哈希哈希,如下所示:

package file1;

our %hash = (
    'articles' =>  {
                       'vim' => '20 awesome articles posted',
                       'awk' => '9 awesome articles posted',
                       'sed' => '10 awesome articles posted'
                   },
    'ebooks'   =>  {
                       'linux 101'    => 'Practical Examples to Build a Strong Foundation in Linux',
                       'nagios core'  => 'Monitor Everything, Be Proactive, and Sleep Well'
                   }
);
Run Code Online (Sandbox Code Playgroud)

而我的file2.pl包含

#!/usr/bin/perl
use strict;
use warnings;

require 'file1';

my $key;
my $key1;

for $key (keys %file1::hash){
   print "$key\n";

   for $key1 (keys %{$file1::hash{$key1}}){
   print "$key1\n"; …
Run Code Online (Sandbox Code Playgroud)

perl hash-of-hashes

0
推荐指数
1
解决办法
400
查看次数

Perl:访问动态深度的哈希

我正在努力访问/修改未知(即动态)深度的哈希值。

假设我正在从文件中读取一个测量表(长度,宽度,高度),然后计算“面积”和“体积”以创建如下所示的哈希:

#                       #Length  Width  Height  Results
my %results = (     
                        '2' => {        
                                '3' => {        
                                        '7' => {
                                                'Area' => 6,
                                                'Volume' => 42,
                                                },
                                        },
                                },
                        '6' => {        
                                '4' => {        
                                        '2' => {
                                                'Area' => 24,
                                                'Volume' => 48,
                                                },
                                        },
                                },
                        );
Run Code Online (Sandbox Code Playgroud)

我了解如何访问哈希中的单个项目(例如$results{2}{3}{7}{'Area'}会给我)6,或者我可以使用来检查是否已在输入文件中找到该度量组合exists $results{2}{3}{7}{'Area'}。但是,用{}括号括起来的符号假定我在编写代码时知道会有4层按键。

如果有更多或更少并且我仅在运行时发现该怎么办?例如,如果文件中只有Length和Width,您将如何制作随后访问哈希的代码$results{2}{3}{'Area'}

即给定一个哈希键和嵌套键的动态长度列表,该键在哈希中可能有也可能没有结果条目,您如何访问哈希以进行基本操作,例如检查该键组合是否具有值或修改该值?

我几乎想要这样的符号:

my @hashkeys = (2,3,7);

if exists ( $hash{join("->",@hashkeys)} ){
    print "Found it!\n";
}
Run Code Online (Sandbox Code Playgroud)

我知道您可以访问哈希的子哈希并获取它们的引用,因此在最后一个示例中,我可以进行遍历@hashkeys,检查每个哈希是否当前的哈希在该键处具有子哈希,如果是,则保存对该哈希的引用子哈希用于下一次迭代。但是,这感觉很复杂,我怀疑已经有一种方法可以更轻松地做到这一点。

希望这足以理解我的问题,但是如果没有,我可以尝试建立MWE。 …

perl hash hash-of-hashes

0
推荐指数
1
解决办法
377
查看次数

标签 统计

hash-of-hashes ×5

perl ×3

hash ×2

ruby ×2

redis ×1