Ruby中如何获取哈希的特定值?

更新于
2026-10-03 19:26:11
0阅读来源:SEO基础
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计213个文字,预计阅读时间需要1分钟。

我有一个包含学生姓名和标记的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"]}

本文共计213个文字,预计阅读时间需要1分钟。

我有一个包含学生姓名和标记的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"]}