Why ist der eleganteste Weg, um einen Hash auf den Kopf zu stellen?

7

Was ist der eleganteste Weg, um einen Hash von innen nach außen zu drehen?

Damit meine ich, Schlüssel durch Werte zu ersetzen und umgekehrt (vorausgesetzt, dass alle Werte 100% eindeutig sind).

z. B.

Beginnen Sie mit

%Vor%

Ich weiß, dass ich es auf rohe Weise machen kann:

%Vor%

Aber das kann nicht die perönlichste Art und Weise sein, dies zu tun!

    
Ike 13.02.2012, 21:57
quelle

2 Antworten

15

reverse gehört wahrscheinlich zu den idiomatischsten Arten:

%Vor%

Dies funktioniert, weil reverse den %start Hash als Liste der Form verwendet (key1 value1 key2 value2 ... keyN valueN); dann kehrt die Liste umgekehrt um (valueN keyN ... value1 key1). Wenn Sie diese Liste einer Hash-Variablen zuweisen, wird diese in einen Hash umgewandelt, bei dem ungerade Elemente zu Schlüsseln und gerade Elemente zu Werten werden

Oder Sie können map (weniger elegant, aber immer noch idiomatisch) verwenden:

%Vor%     
DVK 13.02.2012, 21:58
quelle
10
%Vor%     
cjm 13.02.2012 21:59
quelle

Tags und Links