gpt4 book ai didi

perl - 在 Perl 中,如何按值的频率排序?

转载 作者:行者123 更新时间:2023-12-04 16:56:10 25 4
gpt4 key购买 nike

我正在尝试创建一个程序来计算数据文件列中出现的不同值。所以,如果一列的可能值是 A、B、C,它会是这样的。输出是这样的

A   456
B 234
C 344

通过执行这样的操作,我已经能够轻松获得 A、B 和 C 的运行计数
my %count; 
for my $f (@ffile) {

open F, $f || die "Cannot open $f: $!";

while (<F>) {
chomp;
my @U = split / /;

$count{$U[2]}++;
}

}
foreach my $w (sort keys %count) {
printf $w\t$count{$w};
}

例如,我在这里计算给定路径中文件的第二列。

如何通过计数而不是键(或值 A、B、C)对 printf 的输出进行排序以获得 -
A   456
C 344
B 234

最佳答案

这是一个常见问题:

perldoc -q sort

use warnings;
use strict;

my %count = (
A => 456,
B => 234,
C => 344
);

for my $w (sort { $count{$b} <=> $count{$a} } keys %count) {
print "$w\t$count{$w}\n";
}

__END__
A 456
C 344
B 234

关于perl - 在 Perl 中,如何按值的频率排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4519979/

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