gpt4 book ai didi

ruby - 帮助重构 Ruby 哈希切片和切 block

转载 作者:太空宇宙 更新时间:2023-11-03 17:59:36 25 4
gpt4 key购买 nike

我正在做一个项目,我需要将报纸文章与它们在打印品中出现的页码相关联。

我的输入数据只是一堆文章标题和页码对。我想出了以下代码来创建一个新的 Hash,其中键是页码,值是文章标题的数组:

a = ["A1", "title 1"]
b = ["A1", "title 2"]
c = ["A2", "title 3"]
hash = {}
articles = [a,b,c]
articles.each do |a|
if hash.has_key?(a[0])
hash[a[0]] << a[1]
else
hash.merge!({a[0] => [a[1]]})
end
end

该代码运行良好,但我想知道是否有更简洁的方法来执行此操作。我检查了 Ruby 文档,但找不到任何内置方法,但我希望 SO 对此提供意见。

最佳答案

Michael Kohl一直在提醒group_by最近:

articles = [
["A1", "title 1"],
["A1", "title 2"],
["A2", "title 3"]
]
page_to_titles = articles.group_by(&:first).each { |k,v| v.map!(&:last) }

在 1.9.2 和 1.8.7 中工作相同。

关于ruby - 帮助重构 Ruby 哈希切片和切 block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7294841/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com