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回目の繰り返し →
row = [1, 2, 3]
- 2回目の繰り返し →
row = [4, 5, 6]
- 3回目の繰り返し →
row = [7, 8, 9]
2. for element in row:
- 目的:
row
に入っている「行」から、さらに1つずつ数字(要素)を取り出して、element
に代入します。 - 実行内容:例えば、1回目のループでは
row = [1, 2, 3]
なので、element
に1
,2
,3
の順に入れていきます。
1つ目の「行」が [1, 2, 3]
の場合、次のように進みます。
- 1回目の繰り返し →
element = 1
- 2回目の繰り返し →
element = 2
- 3回目の繰り返し →
element = 3
3. print(element, end=" ")
- 目的:
element
に入っている数字を表示し、行の中でスペースで区切って横並びにします。 - 実行内容:
element
の数字を表示しますが、end=" "
で「改行せずにスペースを入れる」という指定をしています。
4. print()
- 目的:行ごとに改行を入れるためです。
- 実行内容:1行のすべての数字が表示されたら、次の行に進む前に改行するため、これが実行されます。
まとめるとどう動くか
このコードが動くと、matrix
の各行に対して次の処理を行います:
- 1行目
[1, 2, 3]
の各数字1, 2, 3
をスペースで区切って表示し、行が終わったら改行します。 - 2行目
[4, 5, 6]
の各数字4, 5, 6
を同様に表示し、行が終わったら改行します。 - 3行目
[7, 8, 9]
の各数字7, 8, 9
を同様に表示し、行が終わったら改行します。
実行結果
実行すると、次のように表示されます:
1 2 3
4 5 6
7 8 9
これで、「表」のようにリストをきれいに並べて表示できました。
コメント