Pythonで2次元リストを作成・操作する方法を完全ガイド!初心者でもわかる入れ子リストの使い方
生徒
「先生、Pythonで表みたいなデータを作る方法ってありますか?表計算みたいな感じの。」
先生
「それなら2次元リストを使えばできますよ。行と列を持つ表のようなデータを扱うのにぴったりです。」
生徒
「2次元リストって難しそうですけど、大丈夫ですか?」
先生
「大丈夫です。2次元リストは、『リストの中にリストが入っている』というだけなんです。一緒に順番に見ていきましょう!」
1. 2次元リストとは?
2次元リストとは、「リストの中にリストが入っている」入れ子構造のリストのことです。表(テーブル)やマス目のようにデータを管理できます。
例えば、3行3列のマス目を表現するとこうなります:
matrix = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
]
このように、ひとつのリストに3つのリストが入っており、それぞれが「行」を表しています。
2. 2次元リストの特定の値にアクセスする
リストの中のリストにアクセスするには、2つのインデックスを使います。
例えば、上のmatrixから「5」を取り出すにはこうします:
print(matrix[1][1])
5
最初の[1]が「2番目の行」、次の[1]が「その中の2番目の列」を意味します。Pythonでは番号が0から始まるので注意!
3. 2次元リストの中身をすべて表示する
すべての要素を表示するには、繰り返し処理(for文)を使います。
for row in matrix:
for item in row:
print(item, end=" ")
print()
1 2 3
4 5 6
7 8 9
このように、まず1行ずつ取り出して、その中のデータも1つずつ表示していきます。
4. 2次元リストを使って表を初期化する
2次元リストをゼロで埋めたいときは、リスト内包表記を使うと便利です。
rows = 3
cols = 4
zero_matrix = [[0 for _ in range(cols)] for _ in range(rows)]
print(zero_matrix)
[[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]]
このようにして、3行4列のゼロ表を簡単に作ることができます。
5. 2次元リストの値を変更するには?
特定の位置の値を変更したいときは、行番号・列番号でアクセスして代入します。
zero_matrix[0][1] = 99
print(zero_matrix)
[[0, 99, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]]
このように、簡単に値を変えることができます。
6. 2次元リストの活用シーンと検索キーワード
2次元リストは、さまざまな場面で活躍します:
- ゲームのマス目(オセロや将棋など)
- 座席表やスケジュール表
- CSVデータの処理や表形式のデータの管理
検索するときは、「Python 2次元リスト 作り方」「Python リスト 入れ子」「リスト 表形式 データ Python」などのキーワードが役立ちます。
まとめ
今回の記事では、Pythonにおける2次元リストの基本から実践的な使い方までを順番に学んできました。2次元リストとは、「リストの中にリストが入っている構造」であり、行と列を持つ表形式のデータを扱うための非常に重要なデータ構造です。Python初心者にとっては少し難しく感じられることもありますが、実際には「1行ずつのリストをまとめたもの」と考えることで、理解しやすくなります。 2次元リストを使うことで、表計算ソフトのようなデータ構造や、ゲームのマス目、座席表、スケジュール管理、CSVデータの読み込み結果など、現実世界に近いデータをそのままプログラム上で表現できるようになります。特に、行番号と列番号を使って特定の値にアクセスできる点は、Pythonのリスト操作を深く理解するうえで欠かせないポイントです。 記事の中では、matrix[行][列]という形で要素にアクセスする方法や、for文を使って2重ループで全要素を処理する方法を学びました。これにより、2次元リストの中身を順番に表示したり、条件に応じて処理を分岐させたりといった応用が可能になります。また、リスト内包表記を使った初期化方法を覚えることで、任意の行数・列数を持つ2次元リストを効率よく作成できるようになります。 さらに、特定の位置の値を変更する操作を通して、2次元リストが「読み取り専用」ではなく、「自由に更新できる柔軟なデータ構造」であることも確認しました。これらの操作を理解しておくと、Pythonでのデータ処理やアルゴリズム学習、簡単なゲーム制作など、さまざまな分野への応用が一気に広がります。 2次元リストは、Pythonの基礎文法であるリスト、インデックス、for文を組み合わせた集大成とも言える存在です。今回学んだ内容をしっかり復習し、「Python 2次元リスト 作成」「Python 入れ子リスト 使い方」「Python 表形式 データ 操作」といったテーマに自然と対応できるようになることが、次のステップへの大きな一歩になります。
サンプルプログラムで理解を深めよう
# 3行3列の2次元リストを作成
table = [
[10, 20, 30],
[40, 50, 60],
[70, 80, 90]
]
# すべての値を表示
for row in table:
for value in row:
print(value, end=" ")
print()
# 特定の値を変更
table[1][2] = 99
print(table)
このサンプルプログラムでは、2次元リストの作成、全要素の表示、特定の要素の更新という基本的な操作をまとめて確認できます。実際に手を動かしてコードを書き、実行結果を確認することで、2次元リストの構造や動きがよりはっきりと理解できるでしょう。
生徒
「2次元リストって難しそうだと思っていましたが、行ごとのリストだと考えると分かりやすかったです。」
先生
「その考え方がとても大切ですね。1次元リストを組み合わせているだけだと理解できれば怖くありません。」
生徒
「for文を2回使う理由も、行と列を順番に見ているからなんですね。」
先生
「その通りです。2重ループは2次元リストとセットで覚えると、自然に使えるようになりますよ。」
生徒
「ゲームのマス目や表データに使えると聞いて、実際のイメージがわいてきました。」
先生
「ぜひいろいろな場面で使ってみてください。2次元リストを使いこなせるようになると、Pythonの表現力が一気に広がりますよ。」