我有一个包含学生姓名和标记的 ruby哈希,如下所示. student_marks = { "Alex" = 50, "Beth" = 54, "Matt" = 50} 我正在寻找一个解决方案,根据他们的分数对学生进行分组. { 50 = ["Alex", "Matt"], 54 = ["Beth"
student_marks = { "Alex" => 50, "Beth" => 54, "Matt" => 50 }
我正在寻找一个解决方案,根据他们的分数对学生进行分组.
{ 50 => ["Alex", "Matt"], 54 => ["Beth"] }
我试过了group_by但它没有给我想要的结果.以下是使用group_by的结果.
student_marks.group_by {|k,v| v} {50=>[["Alex", 50], ["Matt", 50]], 54=>[["Beth", 54]]}
提前致谢.
我会做这样的事情:student_marks.group_by { |k, v| v }.map { |k, v| [k, v.map(&:first)] }.to_h #=> { 50 => ["Alex", "Matt"], 54 => ["Beth"]}