Answer by Mladen Jablanović for Ruby Hash transpose →
If you prefer inject, you can write it as
h.inject({}){|a,(k,v)| v.inject(a){|a1,(k1,v1)| a1[k1] ||= {} a1[k1][k] = v1 a1 } a
}
If you prefer inject, you can write it as
h.inject({}){|a,(k,v)| v.inject(a){|a1,(k1,v1)| a1[k1] ||= {} a1[k1][k] = v1 a1 } a
}