【初心者向け】Pythonの多重リスト(配列)をfor文を使って作る方法の解説

初心者に向けて、Pythonで多重リスト(リストの中にリスト)をfor文を使って作る方法の解説

今回はPythonのリストの作り方の応用として、あるリストの中の「要素にリスト」を使う多重リスト(配列)の作り方を解説します。

多重リストは今後もみなさんがプログラミングでなにかを作ろうとするとき、あるいはプログラミングの勉強するときに頻繁に登場すると思うので、ぜひこの記事で多重リストの基本に慣れてもらればと思います。

(1) Pythonのリストの作り方の基本

まずは一番初歩的なリストを作ってみましょう。今回はまず空のリストを1つ作ります。


new_list=[]

これだけですね。他にも作り方はありますが、今回はこういう作り方にしました。

きちんと作れたか表示させてみましょう。

print(new_list)

この結果は次の画像のようになります。(私の環境はAtom+Hydrogenです)

Pythonの多重リストの作り方の解説

これで出来上がった空リストは、中身が空です。その証拠に、インデックスでゼロを指定し、リストの最初の要素を表示させようと次のコードを書いてもエラーがでます。

print(new_list[0])
Pythonの多重リストの作り方の解説
空のリストの最初の要素を表示させようとしても、エラーがでる。そもそも何も入っていないので。無い袖は振れません。

では、次にappendメソッドの使い方を少し学習しましょう。なぜなら、今回の解説では多重リストを作る時にappendメソッドを使うからです。

(2) Pythoのappendメソッドの使い方:リストの最後に何かを付け加える

Pythonのリストオブジェクトには、appendメソッドというものが用意されています。このメソッドは、「リストの最後に、何かを付け加える」という機能です。さっそくコードを見てみましょう。

まず、Pythonにおけるメソッドの使い方は、

オブジェクト.メソッド

という書き方でした。

今回は次のようにしてみます。

new_list.append(["ラーメン","カレー"])

これは、new_listという空のリストの最後に、新しいリストとして[“ラーメン”, “カレー”]というリストを放り込むコードです。

表示させてみましょう。

print(new_list)

次のようになります。

Pythonの多重リストの作り方の解説

最初に作った空のリストにはそもそも何も入っていませんでしたから、その最後の要素とは、すなわち最初の要素(インデックスでゼロの要素)になります。

実際に、インデックスでゼロを指定して、新しくなったnew_listの最初の要素を確認しましょう。

print(new_list[0])
Pythonの多重リストの作り方の解説
リストの1番目の要素としてリストが出力されている

以上のようにして、appendメソッドを使ってリストの最後に別のリストを放り込むことができるとわかりました。

これでPythonでの多重リストの作り方の基本は終わりです。次にこれを応用してさらなる多重リストを作ってみましょう。

(3) Pythonの多重リストの作り方の解説

①基本的な作り方

今、上述の流れでリストオブジェクトである「new_list」は、

インデックスの番号 要素の順番 中身
01[“ラーメン”, “カレー”]

というリストになっています。

今は要素が1つしかないので、「最初の要素=最後の要素」となっています。

では、さらにappendメソッドを使って、[“ラーメン”, “カレー”]というリストを再び放り込んでみましょう。

new_list.append(["ラーメン", "カレー"])
print(new_list)

次の結果となります。

Pythonの多重リストの作り方の解説

もともとは、

インデックスの番号要素の順番中身
01[“ラーメン”, “カレー”]

というリストだったわけですが、

インデックスの番号要素の順番中身
01[“ラーメン”, “カレー”]
12[“ラーメン”, “カレー”]

というように変化したわけです。

だったら、あとはappendを繰り返し用いれば・・・

new_list.append(["ラーメン", "カレー"])
new_list.append(["ラーメン", "カレー"])
new_list.append(["ラーメン", "カレー"])
print(new_list)

このようにさらに3回appendを繰り返せば、

Pythonの多重リストの作り方の解説

new_listが、[“ラーメン”, “カレー”]というリストを5つものになります。

すなわちnew_listは、次のようなリストとなります。

インデックスの番号要素の順番中身
01[“ラーメン”, “カレー”]
12[“ラーメン”, “カレー”]
23[“ラーメン”, “カレー”]
34[“ラーメン”, “カレー”]
45[“ラーメン”, “カレー”]

いわゆる数学上の行列として表現(エクセルみたいなもの)すると、

  
列1 列2
行1ラーメンカレー
行2ラーメンカレー
行3ラーメンカレー
行4ラーメンカレー
行5ラーメンカレー

という感じです。

② forを使った作り方

上ではappendを5回繰り返しました。同じことを繰り返す処理は、forを使えばできますね。

そこでforを使って書き換えてみましょう。

#まず空のリストを作成
new_list=[]
# リストの要素となるリストを作成
menu=["ラーメン", "カレー"]
# appendの処理を5回繰り返す。
for i in range(0, 5):
    new_list.append(menu)
print(new_list)

処理の流れを大雑把に説明します。

まずrange(0, 5)は、0, 1, 2, 3, 4(=5-1)という5個の整数を作りだします。

そして、forにより、それらの整数が順番にiへ代入され処理が開始されます。

i=0となって、 new_list.append(menu) が実行される。

空だったnew_listが、[ [“ラーメン”, “カレー”] ]へ

i=1となって、その [ [“ラーメン”, “カレー”] ] というnew_listに対してまたnew_list.append(menu)が実行される。

[ [“ラーメン”, “カレー”], [“ラーメン”, “カレー”] ]へ

i=2となって、その [ [“ラーメン”, “カレー”], [“ラーメン”, “カレー”] ] というnew_listに対して、また new_list.append(menu)が実行される。

[ [“ラーメン”, “カレー”], [“ラーメン”, “カレー”], [“ラーメン”, “カレー”] ]へ

i=3となって・・・以下略

という流れですね。

さて実行結果ですが、次のようになります。

Pythonの多重リストの作り方の解説

上で作ったリストと同じものが出来上がりました。

ここからは少し応用的な多重リストの作り方を見ていきましょう。

まずは空のリストを要素とする空のリストを作ってみましょう。

new_list01=[]
for a in range(0,3):
    new_list01.append([])
print(new_list01)
Pythonの多重リストの作り方の解説

こうなります。

次に、[0, 1, 2]という整数のリストを要素としてもつリストを自動的に作り出してみましょう。

new_list03 = []
for i in range(3):
    new_list03.append([])
    for j in range(3):
        new_list03[i].append(j)

print(new_list03)
Pythonの多重リストの作り方の解説

こんなふうにできあがります。

これは、数学上の行列で表すとこうなります。

列1 列2 列3
行1012
行2012
行3012

では、最後にさらにもう一段深い多重リストを作ってみます。

new_list04 = []
for i in range(3):
    new_list04.append([])
    for j in range(3):
        new_list04[i].append([])
        for m in range(3):
            new_list04[i][j].append(m)

print(new_list04)
Pythonの多重リストの作り方の解説

これをあえて数学的な行列として(?)書き表すならばこんな感じで書くのがわかりやすいでしょうか。

列1 列2 列3
行1[0, 1, 2][0, 1, 2][0, 1, 2]
行2[0, 1, 2][0, 1, 2][0, 1, 2]
行3[0, 1, 2][0, 1, 2][0, 1, 2]

いかがだったでしょうか。最後のややこしいforの使い方は別として、今回の記事でPythonの多重リストの作り方の基本をつかんでもらえれば幸いです。

やっぱりプログラミングは独学だとわかりにくいですよね、そこでスクールや動画による解説を利用しましょう!

Tech Academy

厚切りジェイソンのCMでおなじみのプログラミングスクール。自宅でオンライン受講OK。現役のプロが一人一人に専属メンターになってくれ、質問すればすぐに回答。転職保証あり

Udemy

世界最大級のオンライン学習動画サービス。AI・データサイエンスなど最先端のプログラミング講座からビジネススキル講座まで10万以上の講座から選び放題。講師に掲示板から直接に質問もできる。