gpt4 book ai didi

perl - 如何根据来自不同散列的键对散列中的值求和?

转载 作者:行者123 更新时间:2023-12-01 09:05:02 25 4
gpt4 key购买 nike

不确定这是否是这个问题的正确标题,因为我是 Perl 新手,但我有一个包含 2 列感兴趣的文本文件:

AB      Volume
100 280
137 250
150 375
100 100
100 600
137 200

我想根据 AB# 总结 Volumes,得到的输出是

AB     Instances     Volume
100 3 980
137 2 450
150 1 375

到目前为止,我所做的只是在输出文件中显示不同的 AB,但我很难获得卷计数的总和。

$isAB{$AB} = 1;
$isVolume{$Volume} =1;
$numAB{$AB}++;

print "AB\tInstances\tVolume\n";
for $AB (sort {$a<=>$b;} keys %numAB) {
print "$AB\t$numAB{$AB}\n";
}

任何帮助将不胜感激!谢谢

最佳答案

怎么样:

#!/usr/bin/perl 
use strict;
use warnings;
use 5.010;

my %res;
while(<DATA>) {
chomp;
my @fields = split;
$res{$fields[0]}{instance}++;
$res{$fields[0]}{volume} += $fields[1];
}

foreach(sort {$a<=>$b} keys(%res)) {
say "$_\t$res{$_}{instance}\t$res{$_}{volume}";
}

__DATA__
100     280
137     250
150     375
100     100
100     600
137     200

输出:

100 3   980
137 2 450
150 1 375

关于perl - 如何根据来自不同散列的键对散列中的值求和?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9179460/

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