2010-07-29 6 views

Répondre

173
h = Hash[a.zip b] # => {:baz=>1, :bof=>2, :bar=>"world", :foo=>"hello"} 

... putain, j'adore Ruby.

+2

Il est assez évident mais si quelqu'un se demande, si vous voulez obtenir les tableaux d'origine à partir du nouveau hachage, vous pouvez simplement appeler 'h.keys' et' h .values'. – bhaity

27

Je voulais juste signaler qu'il ya une façon un peu plus propre de le faire:

h = a.zip(b).to_h # => {:foo=>"hello", :bar=>"world", :baz=>1, :bof=>2} 

doivent se mettre d'accord sur la partie «J'aime Ruby » bien!

+1

Cela fonctionne sur ruby ​​2.0 et supérieur – Matilda

13

Que pensez-vous de celui-ci?

[a, b].transpose.to_h 

Si vous utilisez Ruby 1.9:

Hash[ [a, b].transpose ] 

Je me sens a.zip(b) ressemble a est maître et b est esclave, mais dans ce style, ils sont plats.

+0

J'aime celui-ci. –

+0

Ceci est plus facile à comprendre – bhaity

Questions connexes