gpt4 book ai didi

ruby - 使用数组作为其中之一转换键和值

转载 作者:行者123 更新时间:2023-12-05 08:28:47 24 4
gpt4 key购买 nike

我有以下 Ruby 哈希

a = {
7 => [1469, 2283],
5 => [1469, 5464],
3 => [7561],
6 => [7952, 8114],
4 => []
}

并希望获取数字显示为值的键

 b = {
1469 => [7,5],
2283 => [7],
5464 => [5]
...
}

我该怎么做?我确信有一些 super 巧妙的方法可以完成它。

最佳答案

给定:

a = {
7 => [1469, 2283],
5 => [1469, 5464],
3 => [7561],
6 => [7952, 8114],
4 => [1469, 2283],
2 => []
}

b中使用新数组的默认值:

b=Hash.new {|hsh, key| hsh[key] = [] }
a.each{|k,v| v.each{|n| b[n] << k} }

或使用 each_with_object 包含对象创建:

b=a.each_with_object(Hash.new {|h,k| h[k] = []}) { |(k,v), h|
v.each{ |e| h[e] << k } }

结果 b 是:

{1469=>[7, 5, 4], 2283=>[7, 4], 5464=>[5], 7561=>[3], 7952=>[6], 8114=>[6]}

关于ruby - 使用数组作为其中之一转换键和值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74707772/

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