前回の記事ではリストの定義方法や、その中の要素の取りだし方について確認しましたが今回は多次元リストの作成方法について確認します。リストをネストするとも言ったりします。韻を踏んでいていい感じです。また、他の言語の場合は多次元配列と言ったりするものです。まずは多次元とはどういうものかから、その使用方法まで確認します。
多次元リスト(リストのネスト)とは
リストでいう多次元とはリストを何階層にも重ねたもののことを言います。階層とはどういう状態かというとマトリョーシカのようにリストの中にリストが入っている状態の事です。これがネストするとも表現されるわけです。
多次元配列は書かなくてもわかると思いますが、次元数によって名称が変わります。2次元であれば2次元配列、3次元であれば3次元配列となります。次元数は箱が何層になっているかで決まります。以下の画像は2個箱があるので2次元です。

ただ、リストは箱が連なったものなので連なった箱の中にさらに連なった箱があるイメージです。

多次元要素の使い方としてはそれぞれデータ型の異なるリストをまとめて入れたり、グループ分けが異なるリストを多次元にすることで表現したりします。
例えばデータベースから以下のような日毎の商品の売り上げデータみたいなデータを取得した際に多次元リストに入れることで処理を行いやすくすることができます。
販売日 | 商品名 | 販売個数 |
2021-07-24 | ペナップ | 3 |
2021-07-24 | ゴリゴリ君 | 7 |
2021-07-24 | チョコモナカグランデ | 5 |

上記のようなリストは2次元配列になります。データを覆っている一番外の枠がリストの一次元目、つまり一番大きい箱にあたり、データを直で覆っている枠が2次元目、つまり中の小さい箱にあたります。
多次元リストの作成
それでは多次元リストの作成方法について確認します。
まず外側のリストは通常通り作成します。
1 |
multi_list = ["",""] |
多次元リストでは上記の””の個所にリストを埋め込むようにします。
先に数値配列を作成し、後ろに文字列配列を作成します。
1 |
multi_list = [[1,2,3],["a","b","c"]] |
以上で多次元リストを作成することができました。
多次元リストの要素の取得
それでは多次元リストの深い階層にある箱の中のデータにアクセスする方法を考えてみます。
下記の図をもう一度見てみると外側の箱のインデックス0番の場所に配列がさらにあります。

この場合、0番のインデックスの箱の中のさらにインデックス番号を指定する形でアクセスすることができます。箱の中の1番にアクセスしたい場合は0-1番みたいなイメージです。では実際のコードで確認します。
先ほどの2次元配列を用いて、数値配列の方の2を出力してみます。
1 2 |
multi_list = [[1,2,3],["a","b","c"]] print(multi_list[0][1]) |
上記を詳しく見ると以下のようになっています。

リストの中のデータにアクセスするまでにそのリストを包んでいるリストのインデックスを外側から順に書き出していきます。
なお、外側のインデックスのみ指定した場合は、その中にあるリストすべてを出力します。
1 2 3 |
multi_list = [[[1,2,3],["a","b","c"]],["test","list"]] print(multi_list[0]) #[[1, 2, 3], ['a', 'b', 'c']] |
以上で、多次元リストについては完了です。
リストの利用は多次元構造になっているものが非常に多いので、リストの定義を見てどのような構造になっているかを瞬時にイメージできるようにしておきましょう。
今回はここまでです。お疲れ様でした。
コメント