小编Ema*_*ele的帖子

获取数组中数字的平均值,即哈希值

在 Ruby 程序中,我有一个散列,它以普通字符串作为键,值是数字数组:

hash_1 = {"Luke"=> [2,3,4], "Mark"=>[3,5], "Jack"=>[2]}
Run Code Online (Sandbox Code Playgroud)

我正在寻找的是结果具有相同的散列值,这些值成为数组内数字的平均值:

{"Luke"=> 3, "Mark"=>4, "Jack"=>2}
Run Code Online (Sandbox Code Playgroud)

使其工作的一种方法是创建一个新的空 hash_2,遍历 hash_1 并在块内将键分配给 hash_2 并将数字的平均值作为值。

hash_2 = {}

hash_1.each do |key, value|
  hash_2[key] = value.sum / value.count
end

hash_2 = {"Luke"=> 3, "Mark"=>4, "Jack"=>2}
Run Code Online (Sandbox Code Playgroud)

有没有更好的方法可以做到这一点,例如无需创建新的哈希?

ruby arrays hash average

0
推荐指数
1
解决办法
128
查看次数

标签 统计

arrays ×1

average ×1

hash ×1

ruby ×1