Python|リスト・辞書・集合・タプルのデータ構造と使い分け方

1. はじめに

Pythonには「リスト」「辞書」「集合」「タプル」といった代表的なデータ構造があります。それぞれに特徴と用途があり、正しく使い分けることでコードの可読性・効率性が大きく向上します。

本記事では、Python|リスト・辞書・集合・タプルのデータ構造と使い分け方というテーマのもと、各データ構造の基礎から実用例、注意点までを丁寧に解説します。

Python学習中の方や、データの扱いに悩む初心者〜中級者に向けた内容です。実務に活かせるコツも紹介していますので、ぜひ最後までご覧ください。

 

2. Pythonの基本データ構造|リスト・辞書・集合・タプルの違いとは

2-1. リスト(list)

リストは複数の要素を順序付きで保持できるデータ構造です。変更(追加・削除・上書き)も可能です。

fruits = ["apple", "banana", "orange"]
print(fruits[1])  # 2番目の要素を取得

実行結果:

banana

2-2. 辞書(dict)

辞書は「キーと値」のペアでデータを保持するデータ構造で、順序は維持されます(Python 3.7以降)。

person = {"name": "John", "age": 30}
print(person["name"])  # キーでアクセス

実行結果:

John

2-3. 集合(set)

集合は重複を許さず、順序も保持しないデータ構造です。重複を排除したい場合に便利です。

numbers = {1, 2, 3, 2, 1}
print(numbers)  # 重複は除外される

実行結果:

{1, 2, 3}

2-4. タプル(tuple)

タプルはリストに似ていますが、要素を変更できない不変型です。読み取り専用のデータに使います。

point = (10, 20)
print(point[0])  # 1番目の要素を取得

実行結果:

10

 

3. よくある使い方・応用例

3-1. リストのループ処理と条件分岐

複数のデータを順番に処理したい場合、リストとfor文はよく使われます。

numbers = [1, 2, 3, 4, 5]
for n in numbers:
    if n % 2 == 0:
        print(f"{n}は偶数です")

実行結果:

2は偶数です  
4は偶数です

3-2. 辞書でデータベース風の扱い

名前付きのデータを管理したい場合、辞書は非常に便利です。

user = {"id": 101, "name": "Alice", "email": "alice@example.com"}
for key, value in user.items():
    print(f"{key}: {value}")

実行結果:

id: 101  
name: Alice  
email: alice@example.com

3-3. 集合で重複を排除する

リストの重複要素を削除したいときは集合(set)に変換します。

names = ["Tom", "Jane", "Tom", "Bob"]
unique_names = set(names)
print(unique_names)

実行結果:

{'Bob', 'Jane', 'Tom'}

3-4. タプルを複数代入に使う

タプルは関数の戻り値で複数の値を返す場面にも使われます。

def get_position():
    return (100, 200)

x, y = get_position()
print(x, y)

実行結果:

100 200

 

4. 注意点・エラー対策

4-1. リストとタプルの混同

リストとタプルは見た目が似ていますが、リストは変更可能、タプルは変更不可という違いがあります。

例えば、タプルを変更しようとするとエラーになります。

t = (1, 2, 3)
# t[0] = 10  # TypeError: 'tuple' object does not support item assignment

4-2. 辞書で存在しないキーにアクセス

存在しないキーにアクセスするとエラーが出ます。get()メソッドを使うと安全です。

person = {"name": "Bob"}
print(person.get("age", "不明"))  # キーがなければ「不明」を返す

実行結果:

不明

 

5. まとめ

  • リスト:順序あり・変更可能。よく使うデータ構造
  • 辞書:キーと値のペア。データベース的に使える
  • 集合:重複排除・集合演算向き
  • タプル:変更不可。複数戻り値や定数的用途に便利

Pythonのデータ構造は、適切に使い分けることでコードの効率化・保守性向上に繋がります。実務では「ユーザー情報を辞書で管理」「入力データの一時保存にリスト」「一意な値を集合で管理」など、場面に応じて選択するとよいでしょう。

これらの基本を理解することは、Pythonプログラミング全体の土台となります。まずはそれぞれの特徴を実際に書いて確かめてみましょう!

タイトルとURLをコピーしました