2010-07-29 19 views

cevap

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

... lanet olsun, Ruby'yi seviyorum.

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

olsa "Ruby seviyorum" kısmında anlaşmak zorunda:

+2

Birisi merak ediyorsa, yeni diziden orijinal dizileri almak istiyorsanız sadece "h.keys" ve "h" diyebilirsiniz. .values'. – bhaity

27

Sadece bunu yapmanın biraz daha temiz bir yol olduğunu işaret etmek istedim!

+1

Bu ruby ​​2.0 ve üstü – Matilda

13

Buna ne dersin?

[a, b].transpose.to_h 

Ruby'yi 1.9 kullanıyorsanız:

Hash[ [a, b].transpose ] 

Ben a ustası ve b köle, ama bu tarzda onlar düz gibi a.zip(b) görünüyor hissediyorum.

+0

üzerinde çalışır Ben bunu seviyorum. –

+0

Bunu anlamak daha kolay – bhaity

İlgili konular