我有以下紅寶石哈希:紅寶石哈希轉
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
這已經是非常succint。你有沒有一個真實世界的例子,當你想改變這樣的散列? – 2010-11-12 10:26:07
我有基本相同的數據結構(只是更大)與指標(i1,i2,...)和它們在某些日期(q1,q2,q3,...)的值。我仍然不確定天氣我應該在這裏使用二維數組(而實際上我仍然在評估兩個版本......) – 2010-11-13 09:43:53
如果你經常做這種雜耍,你可能會發現使用Sqlite更容易。 – 2010-11-15 08:08:42