当前位置 : 主页 > 编程语言 > ruby >

Ruby值哈希值

来源:互联网 收集:自由互联 发布时间:2021-06-23
我有一个包含学生姓名和标记的 ruby哈希,如下所示. student_marks = { "Alex" = 50, "Beth" = 54, "Matt" = 50} 我正在寻找一个解决方案,根据他们的分数对学生进行分组. { 50 = ["Alex", "Matt"], 54 = ["Beth"
我有一个包含学生姓名和标记的 ruby哈希,如下所示.

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"]}
网友评论