当前位置: 首页 > 知识库问答 >
问题:

Perl Hash of Hash,获取最低的数字键

鱼渝
2023-03-14

我有一个散列,其中第一个键是一个字符串,第二个键是一个整数。我试图得到散列中最低的第二个键。这是我的杂碎。

%HoH = (
    flintstones => {
        8 => "fred",
        4 => "barney",
    },
    jetsons => {
        5 => "george",
        1 => "jane",
        9 => "elroy",    # Key quotes needed.
    },
    simpsons => {
        99 => "homer",
        5  => "marge",
        3  => "bart",
    },
);

如何获取哈希辛普森一家的最低(最小)密钥?在这种情况下,答案将是3。我能找到的最接近的相关搜索是获取具有最高值的密钥的方法。但是我正在尝试获取具有最低数值的键。

==================编辑============我的尝试=============

foreach my $cartoon (keys %HoH){
    if ($cartoon == "simpsons"){
        $HoH{$cartoon}{<numeric key>};   # somehow store and print lowest key
    }
}

我不能依次循环按键(1,2,3,4,等等。)并简单地存储和返回最低的键,因为键(1,2,3,4等。)可能不存在。我可能会尝试将键存储在一个单独的数组中,并在该数组中存储最少的键。这就是我的尝试。这是一种迂回的方式。因为这是一种迂回的方式,接下来我会做更多的谷歌搜索,看看是否有一种更简单的方式(单行方式)来做到这一点。

共有2个答案

司徒宏远
2023-03-14
my $min = (sort {$a <=> $b} keys $HoH{'simpsons'})[0];
print $min;
邵宜年
2023-03-14
use List::Util qw(min);
print min(keys(%{$HoH{simpsons}}));
 类似资料:
  • 问题内容: 我正在努力跟踪最低号码的分数,如果我发现那些球员的最低分数,我不希望他们在下一轮比赛中再次出战。我已经到了将那些低玩家值存储到数组中的地步,但是我只希望一次存储它们。 问题答案: 而是做2个单独的循环。一个寻找最低的数量,第二个寻找索引。

  • 问题内容: 我需要定义数字的最后一位数字,并将其分配给值。此后,返回最后一位数字。 我的代码段无法正常工作… 码: 题: 如何解决这个问题? 问题答案: 刚回来; 即取模数。这将比解析字符串要快得多。 如果可以为负则使用

  • 问题内容: 我确实检测到一个数字的位数。例如,具有数字。 我所做的只是将数字解析为字符串,并获取字符串长度,例如: 但是,有没有一种最快的方法可以对数字进行计数?我必须多次使用此方法,因此我认为使用会影响性能。 谢谢。 问题答案: Math.floor(Math.log10(number) + 1) // or just (int) Math.log10(number) + 1 例如: 输出:

  • 如何用jQuery得到最后一个数字?例如25.50如何得到最后50?如何得到第一个数字?例如25 多谢帮忙。快乐编码 例如,假设我有一个变量,它是25.50,好吗?我需要得到50,如果50=<50使它25我的意思是25.00如果50>50使它+1我的意思是26

  • 问题内容: 我尝试在执行以下命令后获得具有最高/最低编号的行: 这是我的测试数据 为了获得最低的价值,我将使用 现在,id是,但应该是。 我也尝试了加入: 如何根据最低的结果为每个结果获取正确的ID ? 问题答案: 我认为这是您要实现的目标: 输出: ID 价值 姓名 1个 10 第1行 4 5 第2行 在这里,我使用minVal和Name自联接了表。

  • 所以,我一直在跟踪这个网站上的Mapreduce python代码(http://www . Michael-noll . com/tutorials/writing-an-Hadoop-Mapreduce-program-in-python/),它从一个文本文件中返回字数(即单词及其在文本中出现的次数)。但是,我想知道如何返回出现次数最多的单词。映射器和缩减器如下- 所以,我知道我需要在减速器的