ローイングファンのプログラミング日記

ボート競技やプログラミングについて書きます

行と列を入れかえる zip

今回は行と列を入れかえるメソッドzipを試す。

目次


配列オブジェクトのzipメソッド

zipメソッドは配列オブジェクトのインスタンスメソッド。
基準とする配列に引数の配列を取り込んで、行と列を入れかえた配列をつくる。
リファレンスマニュアルは次のとおり。

Rubyリファレンスマニュアル Arrayクラス
インスタンスメソッド zip
https://docs.ruby-lang.org/ja/latest/class/Array.html

zipを使ったコード

試してみる。

test.rb

ranks = [1,2,3]
crews = ["Aボートクラブ","Bローイングクラブ","C大学"]
goal_times = ["6:00.12","6:01.23","6:12.45"]

p ranks.zip(crews,goal_times)


実行結果
見やすいように改行を入れました。

[
    [1, "Aボートクラブ", "6:00.12"], 
    [2, "Bローイングクラブ", "6:01.23"], 
    [3, "C大学", "6:12.45"]
]


コードの説明。

  • 順位、クルー名、ゴール(2000m)タイム、をそれぞれ配列に格納する
  • zipメソッドを使って3つの配列の行と列を入れかえる
    • 基準にする配列を選びzipメソッドを使う
    • 引数に入れる配列は複数とれる


結果を見ると、3つの配列が配列の配列構造に変わっているのがわかる。
行と列が入れかわって新たな配列ができている。

このように行と列を入れかえることで項目別の配列を融合させることができる。

今回の動作確認環境

Ruby 2.4.3p205
macOS 10.13.3
ターミナル 2.8.2
Windows10
Windows PowerShell 5.1.16299.251