応用例:2次元リストの処理~詳しく説明~

program
matrix = [
    [1, 2, 3],
    [4, 5, 6],
    [7, 8, 9]
]

for row in matrix:           # 行ごとに繰り返し
    for element in row:      # 各行の要素ごとに繰り返し
        print(element, end=" ")
    print()  # 改行

上記コードをわかりやすく説明するために、まずこのコードがどういう目的で書かれているか、また、1行ずつどのように動作するかを一緒に見ていきましょう。

このコードは、リストの中にリストがあるような「表(テーブル)」を横と縦の順で順番に読み取って、数字を並べて表示することを目的としています。ここでの「表」とは、「2次元リスト」と呼ばれる、Excelのように縦と横に並んだデータの集まりだと考えるとわかりやすいです。

例として使う表(リスト)

たとえば、次のような2次元リスト(「matrix」)を表示するコードとします。

matrix = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
]

このリストは次のように見えます:

1 2 3
4 5 6
7 8 9

このリストを、プログラムで表のように1行ずつ表示するのが目的です。


コードの説明を分けて考える

では、このコードがどのように動くのか、1行ずつ見ていきましょう。

1. for row in matrix:

  • 目的matrix から1つずつ「行」を取り出して、row に代入します。
  • 実行内容matrix の中の [1, 2, 3], [4, 5, 6], [7, 8, 9] という「行」を1つずつ取り出し、rowに入れます。

ここで、row の中には順番に次の内容が入ります。

  1. 1回目の繰り返し → row = [1, 2, 3]
  2. 2回目の繰り返し → row = [4, 5, 6]
  3. 3回目の繰り返し → row = [7, 8, 9]

2. for element in row:

  • 目的row に入っている「行」から、さらに1つずつ数字(要素)を取り出して、element に代入します。
  • 実行内容:例えば、1回目のループでは row = [1, 2, 3] なので、element1, 2, 3 の順に入れていきます。

1つ目の「行」が [1, 2, 3] の場合、次のように進みます。

  1. 1回目の繰り返し → element = 1
  2. 2回目の繰り返し → element = 2
  3. 3回目の繰り返し → element = 3

3. print(element, end=" ")

  • 目的element に入っている数字を表示し、行の中でスペースで区切って横並びにします。
  • 実行内容element の数字を表示しますが、end=" " で「改行せずにスペースを入れる」という指定をしています。

4. print()

  • 目的:行ごとに改行を入れるためです。
  • 実行内容:1行のすべての数字が表示されたら、次の行に進む前に改行するため、これが実行されます。

まとめるとどう動くか

このコードが動くと、matrix の各行に対して次の処理を行います:

  1. 1行目 [1, 2, 3] の各数字 1, 2, 3 をスペースで区切って表示し、行が終わったら改行します。
  2. 2行目 [4, 5, 6] の各数字 4, 5, 6 を同様に表示し、行が終わったら改行します。
  3. 3行目 [7, 8, 9] の各数字 7, 8, 9 を同様に表示し、行が終わったら改行します。

実行結果

実行すると、次のように表示されます:

1 2 3
4 5 6
7 8 9

これで、「表」のようにリストをきれいに並べて表示できました。

コメント

タイトルとURLをコピーしました
//投稿内コードにコピー表示 //コピー表示ここまで