小编use*_*bio的帖子

按字母数字排序对哈希键进行排序

我刚刚阅读了在 Perl 中排序字母数字哈希键的帖子. 但是我是从 Perl 开始的,我不是很清楚。

所以我有一个这样的哈希:

  %hash = (
        "chr1" => 1,
        "chr2" => 3,
        "chr19" => 14,
        "chr22" => 1,
        "X" => 2,
    )
Run Code Online (Sandbox Code Playgroud)

我试图获得这样的输出:

chr1
chr2
chr19
chr22
Run Code Online (Sandbox Code Playgroud)

但我正在获得这样的输出:

chr1
chr19
chr2
chr22
Run Code Online (Sandbox Code Playgroud)

我写了这段代码,但它创建了上面的错误输出:

foreach my $chr (sort {$a cmp $b} keys(%hash)) {
    my $total= $hash{$chr};
    my $differentpercent= ($differenthash{$chr} / $total)*100;
    my $round=(int($differentpercent*1000))/1000;
    print "$chr\t$hash{$chr}\t$differenthash{$chr}\t$round\n";
}
Run Code Online (Sandbox Code Playgroud)

它打印:

chr1    342421    7449    2.175
chr10    227648    5327    2.34
chr11    220415    4468    2.027
chr12    213263    4578    2.146 …
Run Code Online (Sandbox Code Playgroud)

sorting perl hash alphanumeric

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

标签 统计

alphanumeric ×1

hash ×1

perl ×1

sorting ×1