在 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)
有没有更好的方法可以做到这一点,例如无需创建新的哈希?