【Python】2次元配列の基本を初心者向けにわかりやすく解説

はじめに

Pythonを使ってプログラミングを学んでいると、よく登場するのがリストというデータ型です。しかし、リストの中にさらにリストを含めた形でデータを扱う場合、2次元配列(リストのリスト)を使うことになります。

この記事では、Pythonの2次元配列の基本的な使い方を、初心者向けに丁寧に解説していきます。これを読めば、2次元配列の概念がしっかり理解でき、実際にコードを書いて扱えるようになります。

この記事を読むとわかること

  • 2次元配列の定義方法
  • 2次元配列の操作方法
  • 実際の使用例と活用法
  • 便利な2次元配列を扱うためのメソッド

2次元配列とは?

Pythonにおける2次元配列とは、リストの中にリストを格納したデータ構造です。これを使うと、行列のような2次元的なデータを簡単に表現できます。

例えば、学校の成績表のようなデータを考えてみましょう。各生徒の名前とその成績を、2次元配列を使って表現することができます。

grades = [
    ["Alice", 85, 90, 78],
    ["Bob", 88, 92, 80],
    ["Charlie", 95, 97, 93]
]

この例では、各生徒の名前と成績をリストに格納し、それをさらにリストのリストとしてまとめています。

2次元配列の作り方

Pythonで2次元配列を作るには、リストをリストの中に格納する方法を使います。以下に基本的な構造を示します。

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

この例では、3行3列の整数からなる行列(2次元配列)を作成しています。

要素にアクセスする方法

2次元配列の各要素にアクセスするためには、インデックスを使います。インデックスは0から始まるので、行と列を指定してアクセスします。

print(matrix[0][0])  # 1行1列目(1)の値を取得
print(matrix[1][2])  # 2行3列目(6)の値を取得

2次元配列のサイズを確認する

2次元配列の行数列数を確認することも重要です。以下のコードで行数(リストの数)と列数(最初のリストの長さ)を確認できます。

rows = len(matrix)
cols = len(matrix[0])

print(f"行数: {rows}, 列数: {cols}")

2次元配列の操作方法

行や列の追加

新しい行や列を2次元配列に追加することも可能です。行の追加は簡単で、リストのappend()メソッドを使って行います。

# 新しい行を追加
matrix.append([10, 11, 12])

# 結果
print(matrix)

列の追加は少し工夫が必要です。各行に新しい列を追加するために、ループを使います。

# 各行に新しい列(0)を追加
for row in matrix:
    row.append(0)

print(matrix)

行や列の削除

行や列を削除するには、行の場合はリストから**pop()**メソッドを使い、列の場合は各行から該当する要素を削除します。

# 最後の行を削除
matrix.pop()

# 最後の列を削除
for row in matrix:
    row.pop()

print(matrix)

要素の変更

2次元配列の特定の要素を変更するには、インデックスを指定して直接代入します。

# 2行3列目の値を変更
matrix[1][2] = 99

print(matrix)

2次元配列の実際の使用例

学生の成績管理

2次元配列は、学生の成績管理に非常に役立ちます。たとえば、複数の科目について、各生徒の点数を管理する場合に使用できます。

students = [
    ["Alice", 80, 90, 70],
    ["Bob", 85, 95, 88],
    ["Charlie", 92, 88, 84]
]

# 各生徒の平均点を計算
for student in students:
    name = student[0]
    avg = sum(student[1:]) / len(student[1:])
    print(f"{name}の平均点: {avg}")

行列の転置

数学や科学の計算でよく使われる行列の転置も、2次元配列で簡単に実装できます。行列の転置とは、行と列を入れ替える操作です。

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

# 行列の転置を計算
transposed_matrix = [list(row) for row in zip(*matrix)]

print(transposed_matrix)

まとめ

この記事では、Pythonの2次元配列について、初心者向けに基本的な使い方から応用的な例まで解説しました。

  • 2次元配列の作成方法やアクセス方法
  • 行や列の追加・削除・変更方法
  • 実際の使用例として学生の成績管理や行列の転置など

これらの知識を活用すれば、実際のプログラムで2次元配列をうまく利用できるようになるでしょう。まずは基本的な操作を練習して、次第に実際のプロジェクトに役立てていきましょう。

2次元配列は非常に便利ですが、データが大きくなるとメモリを多く使うため、必要に応じて他のデータ構造を検討することも重要です。

Pythonをマスターしよう

この記事で学んだPythonの知識をさらに伸ばしませんか?
Udemyには、現場ですぐ使えるスキルを身につけられる実践的な講座が揃っています。