zipメソッド 13
zipメソッドについて
AtCoderの「B - Trick Taking 」の問題でもっとスリムにできないか他のコードを見てた時に見つけた。
概要
このメソッドは自身の配列と渡される引数の配列から、それぞれのインデックス番号が同じものを一つの配列にまとめるメソッド。
注意点
実例
p [1,2,3].zip([4,5,6], [7,8,9]) # => [[1, 4, 7], [2, 5, 8], [3, 6, 9]] p [1,2].zip([:a,:b,:c], [:A,:B,:C,:D]) # => [[1, :a, :A], [2, :b, :B]] p [1,2,3,4,5].zip([:a,:b,:c], [:A,:B,:C,:D]) # => [[1, :a, :A], [2, :b, :B], # [3, :c, :C], [4, nil, :D], [5, nil, nil]] p [1,2,3].zip([4,5,6], [7,8,9]) { |ary| p ary } # => [1, 4, 7] # [2, 5, 8] # [3, 6, 9] # nil
使用される場面予想
複数の配列を扱う場合かつ、それらの要素を関連付ける必要があるとき。
他サイトのイメージでわかりやすかったのは、Excelで縦に一次元での配列を2つ作る。それらは関連性があり一つにまとめたい。 それにzipメソッドを使う。
その図がまさにジッパーのように見える。