zipメソッドって何に使うんですか。 - まさにっき(使えないプログラマーの記録)
んー。例えば、以下の代わりとか。
- injectの例
a = [1,2,3,4,5] a.inject({}){|h,k| h.merge(k => k*2)} #=> {5=>10, 1=>2, 2=>4, 3=>6, 4=>8}
- zip使う
a = [1,2,3,4,5] Hash[*(a.zip(a.map{|e| e*2}).flatten)] #=> {5=>10, 1=>2, 2=>4, 3=>6, 4=>8}
この使い方を覚えた先では、次のような使い方だった。
csv_rows = [[:name, :age, :sex], ["bob", "12", "male"], ["rinda", "13", "female"]] key = nil csv_rows.each do |row| if key.nil? key = row else Hash[*(key.zip(row).flatten)] end end