gpt4 book ai didi

Ruby 哈希转置

转载 作者:数据小太阳 更新时间:2023-10-29 07:18:52 25 4
gpt4 key购买 nike

我有以下 ruby 哈希:

 h = { i1: { q1: 1, q2:2 }, i2: { q1: 3, q2: 4} }

我想按如下方式转置它:

{ q1: { i1: 1, i2: 3 }, q2: { i1: 2, i2: 4 } }

现在,我想出了一个函数来完成我想要的,但我想知道对于同样的事情是否有更简洁/优雅的方式?

我的解决方案:

 ht = Hash.new{ |h,k| h[k] = {} }

h.each_pair do |k,ih|
ih.each_pair{ |ik, iv| ht[ik][k] = iv }
end

最佳答案

如果你喜欢inject,你可以把它写成

h.inject({}) do |a, (k, v)|
v.inject(a) do |a1, (k1, v1)|
a1[k1] ||= {}
a1[k1][k] = v1
a1
end
a
end

关于Ruby 哈希转置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4163204/

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