gpt4 book ai didi

perl - Perl:按值排序哈希,然后按键排序

转载 作者:行者123 更新时间:2023-12-04 05:22:29 26 4
gpt4 key购买 nike

与此问题类似:sort by subset of perl string

我想先按值排序,然后再按键子集排序。

我的%hash

 cat_02 => 0
cat_04 => 1
cat_03 => 0
cat_01 => 3


输出:(可以是按此顺序排列的键的数组)

cat_02 => 0
cat_03 => 0
cat_04 => 1
cat_01 => 3


奖励:关键的次要比较会识别1234_2_C01并且小于1234_34_C01(cmp不会)

最佳答案

my %hash = (
cat_02 => 0,
cat_04 => 1,
cat_03 => 0,
cat_01 => 3
);

print "$_ => $hash{$_}\n"
for sort { $hash{$a} <=> $hash{$b} or $a cmp $b } keys %hash;


排序对值进行数值比较,如果相等,则执行 or之后的部分,对键进行字符串比较。这给出了您要求的输出。

要对包含数字和非数字内容混合在一起的字符串进行智能排序,请从 http://www.davekoelle.com/alphanum.html中获取字母数字比较功能,然后将 $a cmp $b替换为 alphanum($a,$b)

关于perl - Perl:按值排序哈希,然后按键排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16724966/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com