🔢

表でスッキリわかる!配列の基本と操作

に公開

はじめに

配列って、聞いたことあるけどピンとこない。
そんな人のために、この記事では [コインロッカー]や[表]にたとえて 配列のイメージをつかめるように解説していきます。

むずかしい用語や計算は使いません。
「添え字って何?」とか、「データはどこに入るの?」 といった疑問を、
図を使って見えるようにしていくのがこの記事の目的です。

配列ってなに?コインロッカーで考えてみよう

配列[1]はコインロッカーに似ています。
横に5つ、縦に5つの空きスペースを持つコインロッカーは、数学の行列で5行5列という意味です。

コインロッカー

A B C D E

行列
\begin{bmatrix} 1 & 0 & 0 & 0 & 0\\ 1 & 1 & 0 & 0 & 0\\ 1 & 1 & 1 & 0 & 0\\ 1 & 1 & 1 & 1 & 0\\ 1 & 1 & 1 & 1 & 1 \end{bmatrix}

配列
[[1,0,0,0,0],[1,1,0,0,0],[1,1,1,0,0],[1,1,1,1,0],[1,1,1,1,1]]

配列で複数行を表す場合、「ある1行の配列の各列に、1行の配列が格納されている」ことを意味します。

単語を見比べる

  • 単語のつながりで使用例を見ると
    「『配列』の『要素』に『値』[2]を代入する」となります
  • コインロッカーに言い換えるなら
    「『コインロッカー』の『空き』に『物』を入れる」となります

各単語の意味をつながりで捉えると覚えやすいです。

添え字(そえじ)ってなに?

「添え字」とはプログラミングで用いられる表現で、昔からの名残りです。
要素1個目が添え字0となります。

もし、混同してややこしい場合には以下の方法で対応します。

  • 添え字0の要素を飛ばす
  • 配列の仕様を変更し添え字1からの開始として指定する
配列の仕様を変更する
my_list = ['a', 'b', 'c', 'd', 'e']

start = 1
end = 5

# rangeで現実世界の範囲1から5を使う場合
for i in range(start-1, end):
    print(my_list[i])  # 'a', 'b', 'c', 'd', 'e'

表で追ってみる、配列の代入ステップ

  • 配列の要素に値を代入する流れを理解する
  • 配列の要素の比較について視覚的に学ぶ

配列にデータを代入する流れ[3]

配列値比較計算

裏設定

同じ数値を別の行の配列に代入している様を手順にしたのは、理解を助けるためです。
この表は、1行の配列だけに順番に一番右の数値を代入する場合も想定しています。
そうすると、右下がりに代入が進んでいることが分かります。
そのときの[合計,平均,最大,最小]の動きが理解できる仕組みです。
※ロッカーの各スペースにおける最大積載量には注意してください。

  • ①まずは1行5列の配列(左側の添え字0)の最初の要素(上側の添え字0)に5を代入する
  • ②つぎに2行目の配列(左側の添え字1)の最初の要素と2つ目の要素へ同様に数値を代入する
  • ③3行目には3つの数値を代入する
  • ④4行目には4つの数値を代入する
  • ⑤5行目には5つの数値を代入する

左側の添え字が示すのは「縦向きになった1行の配列」で「それぞれの添え字の要素」に「青い添え字の配列」が格納されています。

参考サイト

脚注
  1. 「配列」という言葉は、配列で選択中の要素(空きスペース)か、すべての要素を指していることがあります。
    なぜ、そのような曖昧な表現になるかと言えば、配列の種類によって要素の最大個数が確定していない場合があるからです。
    このような配列を「動的配列」「可変長配列」と呼びます。
    要素の最大個数のことを「最大要素数」と呼びます。 ↩︎

  2. 値とは数値や文字列のことです。 ↩︎

  3. それぞれの行の[合計,平均,最大,最小]は自動的に計算してくれる仕組みとします。 ↩︎

アルゴリズム×数学の学び直し

Discussion