rubyのzip,transposeメソッドについて
rubyのzipメソッドとtransposeメソッドについて説明します。両メソッドとも配列クラスに対して使うメソッドです。
zipメソッド
zipメソッドは、自身の要素と、引数で与えられた配列の要素を同じインデックス同士で組み合わせます。
a = [1,2,3] b = ["a","b","c"] p a.zip(b) => [[1,"a"],[2,"b"],[3,"c"]]
to_hメソッドと組み合わせるとハッシュに変換もできます。また2つ以上の引数を与えることも可能です。
transposeメソッド
transposeメソッドは、配列を行列と見立て、行と列を入れ替えた配列を返します。
a = [[1,2,3],[4,5,6]] p a.transpose =>[[1,4],[2,5],[3,6]]
似たようなメソッドにproductメソッドがあります。productメソッドは、配列と引数の配列の組み合わせを作り、配列の配列を返します。 例えば、3つの要素を持って配列aと、4つの要素を持つ配列bにおいて、a.product(b)とすると計12個の配列を持つ配列を返します。