lam*_*cro 14 sorting perl hash natural-sort
我有一个Perl哈希,其键以数字开头,或者是数字.
如果我用,
foreach my $key (sort keys %hash) {
print $hash{$key} . "\n";
}
Run Code Online (Sandbox Code Playgroud)
列表可能会出现,
0
0001
1000
203
23
Run Code Online (Sandbox Code Playgroud)
代替
0
0001
23
203
1000
Run Code Online (Sandbox Code Playgroud)
Pau*_*lin 39
foreach my $key (sort { $a <=> $b} keys %hash) {
print $hash{$key} . "\n";
}
Run Code Online (Sandbox Code Playgroud)
排序操作采用可选的比较"子程序"(作为代码块,如我在此处所做的,或子程序的名称).我提供了一个在线比较,使用内置的数字比较运算符'<=>'将键视为数字.
Sch*_*ern 18
保罗的答案对于数字来说是正确的,但是如果你想更进一步,将混合的单词和数字分类为人类的意愿,既cmp不会<=>也不会.例如...
9x
14
foo
fooa
foolio
Foolio
foo12
foo12a
Foo12a
foo12z
foo13a
Run Code Online (Sandbox Code Playgroud)
排序::自然地处理提供nsort和ncmp例程的这个问题.
| 归档时间: |
|
| 查看次数: |
38019 次 |
| 最近记录: |