gpt4 book ai didi

perl - hash的元素如何求和?

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

您好,我有一个散列,其中键是 3 位代码,值是该代码下的元素数。我想求和 3digit 代码并乘以元素的数量,然后最后将它们相加。示例:

000 23
012 42
222 34

[(0+0+0)*23]+[(0+1+2)*42]+[(2+2+2)*34]=0+126+204=330

所以我试过了

foreach my $key (sort keys %hash ){      
@arrSum=split(//, $key);
foreach $i (@arrSum){
$sum+=$i;
$value=$sum*$hash{$key};
}
}

它不起作用。它实际上必须考虑每一行,而不是一次汇总所有 3 位代码。需要一些帮助。

最佳答案

这里有更多functional解决问题的方法,它还使用来自 List::Utilsum :

use List::Util qw(sum);

my %hash = qw(
000 23
012 42
222 34
);

print sum(map { sum(split //) * $hash{$_} } keys %hash); # 330

关于perl - hash的元素如何求和?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6731544/

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