找回密码
 立即注册
学生给定CSV哈希 | 软件设计/软件工程 2022-05-03 236 0star收藏 版权: . 保留作者信息 . 禁止商业使用 . 禁止修改作品
问题
我在 Ruby 中实现了一个团队分配算法,我必须实现一些功能,当给定学生的 id 对列表时,应该将学生分组在一起。

实现这一目标的最有效结构是什么?

我正在考虑一个散列,其中键是学生 ID,值是某个学生无法分组的所有学生 ID 的数组。

例如,如果 CSV 文件包含以下内容:
  1. 3,4
  2. 3,6
  3. 3,8
  4. 4,7
  5. 4,1
  6. 5,2
复制代码

我想得到以下哈希:

{3=>[4,6,8], 4 =>[7,1], 5 =>[2]}

但是,我想不出一种用 CSV 文件中的信息填充散列的有效方法。该文件每行有两个值。

之后最重复的操作是检查给定 ID 是否存在于给定学生的禁止配偶名单中。

回答
这应该适合你:
  1. require 'CSV'

  2. csv_string = %q(3,4
  3. 3,6
  4. 3,8
  5. 4,7
  6. 4,1
  7. 5,2 )

  8. CSV.parse(csv_string, converters: :numeric)
  9.    .group_by(&:first)
  10.    .transform_values { |values| values.map(&:last) }
复制代码






上一篇:当我在android中单击按钮时如何撰写电子邮件?
下一篇:materialzile.css 转盘在移动设备上不起作用