二次元配列を縦と横を入れ替えるメソッド
Rubyは1.6のころから使っているのですが、当時は二次元配列の
縦と横を入れ替えるメソッドは自作していました。
今日は驚愕の事実を発見してしまいました。
Array#transpose
自身を行列と見立てて、行列の転置(行と列の入れ換え)を行いま す。転置した配列を生成して返します。空の配列に対しては空の配列を生 成して返します。
1 | 2 | 3 |
4 | 5 | 6 |
7 | 8 | 9 |
これを
1 | 4 | 7 |
2 | 5 | 8 |
3 | 6 | 9 |
に置き換えたいわけです。
今までは面倒なことをチマチマとやっていたのですが、
irb(main):002:0> [[1,2,3],[4,5,6],[7,8,9]].transpose => [[1, 4, 7], [2, 5, 8], [3, 6, 9]]
あーやんなっちゃう。