标签: hash-of-hashes

散列哈希哈希值的哈希值是否有一个"简单"的方法来获取列表末尾的元素?

我有一个Perl散列的哈希值...大约11或12个元素深.请原谅我没有重复下面的结构!

一些级别具有固定标签,例如'NAMES','AGES'或类似,因此访问这些级别是好的,因为我可以直接使用标签,但我需要循环其他变量,这导致一些非常长的语句.这是一组循环的一半示例:

foreach my $person (sort keys %$people) {
        foreach my $name (sort keys %{$people->{$person}{'NAMES'}}) {
            foreach my $age (sort keys %{$people->{$person}{'NAMES'}{$name}{'AGES'}}) {
                . . . # and so on until I get to the push @list,$element; part
Run Code Online (Sandbox Code Playgroud)

这只是一个例子,但它遵循我所拥有的结构.没有固定名称部分(大写字母中的元素)可能会更短,但是出于参考目的需要它们.

我尝试将这些元素作为哈希来缩短它,以便在每个阶段缩短它,例如,对于第二个foreach,我尝试了各种形式:

foreach my $name (sort keys %{$person->{'NAMES'}})
Run Code Online (Sandbox Code Playgroud)

但这没用.我确定我以前见过类似的东西,所以语义可能不正确.

我已经研究过关于Hash of Hashes的页面以及对哈希及其元素的引用等等,但没有运气.我已经看过while each循环的例子,但它们似乎没有特别简短或更容易实现.也许只有一种不同的方法可以做到这一点,我忽略了这一点.我已经写出了一整套foreach循环,如果我不必再重复六次左右就会很棒.

当然,可能没有'简单'的方式,但所有的帮助赞赏!

perl hash-of-hashes

6
推荐指数
2
解决办法
2803
查看次数

使用java在Redis(Cache)中指向单个值的多个键

我想使用jedis(Redis缓存)和java存储多个具有单值的键.

我有三个按键,例如user_1,driver_10,admin_5和值= this is user,我想用这三个当中的任何一个键获得值.

java caching hash-of-hashes redis

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

如何在Perl中创建哈希散列?

我是Perl的新手.我需要在Perl中定义一个如下所示的数据结构:

  city 1 -> street 1 - [ name , no of house , senior people ]
            street 2 - [ name , no of house , senior people ]


  city 2 -> street 1 - [ name , no of house , senior people ]
            street 2 - [ name , no of house , senior people ]
Run Code Online (Sandbox Code Playgroud)

我该如何实现这一目标?

perl hash-of-hashes data-structures

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

如何访问数组数组深处的元素而不出现“未定义方法”错误

当尝试访问数组数组深处的元素时,如果元素不存在,避免出现错误“undefined method `[]” for nil:NilClass”的最佳方法是什么?

例如,我目前正在这样做,但对我来说似乎很糟糕:

if @foursquare['response']['groups'][0].present? && @foursquare['response']['groups'][0]['items'].present?
Run Code Online (Sandbox Code Playgroud)

ruby hash hash-of-hashes

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

在perl中访问json结构的值

我有一个json结构,我正在解码,看起来像这样:

  person => {
    city => "Chicago",
    id => 123,
    name => "Joe Smith",
    pets => {
      cats => [
                { age => 6, name => "cat1", type => "siamese", weight => "10 kilos" },
                { age => 10, name => "cat2", type => "siamese", weight => "13 kilos" },
              ],
      dogs => [
                { age => 7, name => "dog1", type => "siamese", weight => "20 kilos" },
                { age => 5, name => "dog2", type => "siamese", weight …
Run Code Online (Sandbox Code Playgroud)

perl hash json hash-of-hashes

4
推荐指数
2
解决办法
2万
查看次数

如何在哈斯存储哈希哈希?

我想知道,在Moose中存储哈希哈希的最佳方法是什么.让我们举一个像这样的Hash:

my %hash = ('step1' => {'extraction' => \$object1,
                         'analysis' => \$object2},
            'step2' => {'extraction' => \$object3,
                         'analysis' => \$object4});
Run Code Online (Sandbox Code Playgroud)

但我想将这个保存在驼鹿属性中.我该如何组织访问(阅读,写作).网上的例子主要是"扁平"哈希.但是你可以使用像Moose :: Meta :: Attribute :: Native :: Trait :: Hash这样的助手.哈希散列有类似的东西吗?

原因是,我想迭代步骤键并访问其中的对象实例.或者是否有更好的,更像Moose的方式来做到这一点?

提前致谢!!!

perl moose hash-of-hashes

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

在perl中组合2个"深"(多维)哈希

有一个问题可以解释我想要的内容:如何在perl中合并2个深哈希

但是,那里的答案似乎对我不起作用(建议使用该Merge模块).

我有两个哈希像这样:

$VAR1 = {
          '57494' => {
                       'name' => 'John Smith',
                       'age' => '9',
                       'height' => '120'
                     },
          '57495' => {
                       'name' => 'Amy Pond',
                       'age' => '17',
                       'height' => '168'
                     }
        }
};
$VAR1 = {
          '57494' => {
                       'name_address' => 'Peter Smith',
                       'address' => '5 Cambridge Road',
                       'post_code' => 'CR5 0FS'
                     }
        }
};
Run Code Online (Sandbox Code Playgroud)

如果我使用Hash::Merge%c = {%a,%b}格式我每次都得到这个:

$VAR1 = '57494';
$VAR2 = {
          'name_address' => 'Peter Smith',
          'address' …
Run Code Online (Sandbox Code Playgroud)

perl hash merge hash-of-hashes

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

是否定义了嵌套哈希?()

什么是最简洁的方法来确定是否@hash[:key1][:key2]已定义,如果@hash@hash[:key1]为零,则不会抛出错误?

defined?(@hash[:key1][:key2])如果@hash[:key1]存在则返回True (它不确定是否:key2已定义)

ruby hash defined hash-of-hashes

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

Ruby快速从散列哈希的一部分中创建一个数组?

好吧,如果我有一个散列哈希代表这样的书:

Books = 
{"Harry Potter" => {"Genre" => Fantasy, "Author" => "Rowling"},
 "Lord of the Rings" => {"Genre" => Fantasy, "Author" => "Tolkien"}
 ...
}
Run Code Online (Sandbox Code Playgroud)

有没有什么方法可以简洁地在书籍哈希中获得所有作者的数组?(如果为多本书列出了同一作者,我会在每本书的数组中需要一次他们的名字,因此无需担心删除重复项)例如,我希望能够以下列方式使用它:

list_authors(insert_expression_that_returns_array_of_authors_here)
Run Code Online (Sandbox Code Playgroud)

有谁知道如何制作这种表达方式?非常感谢您提供的任何帮助.

ruby arrays hash-of-hashes ruby-1.9.3

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

Perl按哈希值哈希值或散列哈希值中的哈希值排序

谁能告诉我这里我做错了什么?我已经尝试了几乎所有可能的数组/散列类型和排序查询的组合,我能想到并且似乎无法使其工作.

我试图通过以下方式对哈希引用进行排序value1:

my $test = {
    '1' => { 'value1' => '0.001000', 'value2' => 'red'},
    '2' => { 'value1' => '0.005000', 'value2' => 'blue'},
    '3' => { 'value1' => '0.002000', 'value2' => 'green'},
    '7' => { 'value1' => '0.002243', 'value2' => 'violet'},
    '9' => { 'value1' => '0.001005', 'value2' => 'yellow'},
    '20' => { 'value1' => '0.0010200', 'value2' => 'purple'}
};
Run Code Online (Sandbox Code Playgroud)

使用此排序循环:

foreach (sort { $test{$a}->{'value1'} <=> $test{$b}->{'value1'} } keys \%{$test} ){
    print "key: $_ value: $test->{$_}->{'value1'}\n"
} …
Run Code Online (Sandbox Code Playgroud)

arrays sorting perl hash hash-of-hashes

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