二次元配列、配列、インデックス、要素
オレンジピーチのトシです。
今回は、GASで頻繁に使われる配列について説明したいと思います。
非プログラマーの人には、聞きなじみのない言葉だと思いますが、スプレッドシートをイメージしながら読んで頂けると、理解しやすいかと思います。
今回は、説明文のような内容が続くと思いますが、少しでもGASの概念が理解できるとHappyです。
(すでに二次元配列等の理解がある方は、繰り返しになるので、復習したいと思う人は読み進めてみて下さい。)
プログラムの概念:二次元配列、配列、インデックス、要素
配列
配列は、同じ型のデータを順番に格納するための箱のようなものです。それぞれの箱には番号が振られており、この番号を使って中のデータを取り出したり、変更したりできます。
例:
numbers = [10, 25, 8, 33]
この例では、numbersという配列に4つの整数が順番に格納されています。
スプレッドシートに列方向(横並び)で数字が並んでいるイメージを持って頂けると良いかと思います。
インデックス
配列のそれぞれの箱に振られた番号をインデックスと呼びます。インデックスは0から始まり、配列の最初の要素はインデックス0、次の要素はインデックス1、というように続きます。
例:
numbers = [10, 25, 8, 33]
print(numbers[0]) # 10が出力される
print(numbers[2]) # 8が出力される
スプレッドシートでの行番号、列番号にあたるものというイメージを持って頂けると良いかと思います。インデックスを指定することで、そのデータがある位置を指定することが出来ます。
注意点は、配列で持った時のインデックスは「0」から始まります。
(混乱させるのが、スプレッドシートで行番号・列番号は「1」から始まります。表示上はA,B,Cとアルファベット表記の列番号も、COLUMN関数等で列番号を取得すると、1から始まる数値が得られます。
この違いはコードを書く上で、よく混乱するポイントですので注意してください。
要素
配列の中に格納されている個々のデータを要素と呼びます。
例:
numbers = [10, 25, 8, 33]
この例では、10、25、8、33が配列numbersの要素です。
スプレッドシートのセル値のイメージです。
二次元配列
二次元配列は、配列の中にさらに配列が格納されている構造です。表のようなデータを表すのに便利です。
例:
table = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
]
この例では、tableという二次元配列に3つの配列が格納されています。それぞれの配列は3つの整数を含んでいます。
二次元配列の要素にアクセスするには、2つのインデックスを使います。1つ目は行を表し、2つ目は列を表します。
例:
table = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
]
print(table[1][2]) # 6が出力される (2行目の3列目)
二次元配列は、表形式になったスプレッドシートのシートのイメージです。
1列だけの二次元配列となった場合
1列だけの表のイメージです。
このような場合に、1行の配列みたいに記載しないよう注意が必要です。
table = [
[1],
[2],
[3]
]
まとめ
今回は、「配列」、「インデックス」、「要素」、「二次元配列」について紹介をしました。
これらの概念は、GASでデータを効率的に扱うために非常に重要です。ぜひ理解を深めて、活用してみてください。