176 votes

Permutation des clés et des valeurs dans un hachage

En Ruby, comment échanger les clés et les valeurs d'un hachage ?

Disons que j'ai le hachage suivant :

{:a=>:one, :b=>:two, :c=>:three}

En qui je veux me transformer :

{:one=>:a, :two=>:b, :three=>:c}

L'utilisation d'une carte semble plutôt fastidieuse. Existe-t-il une solution plus courte ?

1voto

Utilisation d'un tableau

input = {:key1=>"value1", :key2=>"value2", :key3=>"value3", :key4=>"value4", :key5=>"value5"}
output = Hash[input.to_a.map{|m| m.reverse}]

Utilisation du hachage

input = {:key1=>"value1", :key2=>"value2", :key3=>"value3", :key4=>"value4", :key5=>"value5"}
output = input.invert

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X