6 Stimmen

Ruby Hash transponieren

Ich habe den folgenden Ruby-Hash:

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

und ich möchte sie wie folgt umwandeln:

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

Jetzt habe ich eine Funktion entwickelt, die das tut, was ich will, aber ich frage mich, ob es eine prägnantere/elegantere Methode für dieselbe Sache gibt?

Meine Lösung:

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

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

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X