Python:リスト・タプル・辞書・集合の解説

投稿日:2026-01-02

音声

※ AI音声で読み上げます

目次

  1. 基本の理解と今回できること
  2. データ型ごとの特徴と使い分けの基準
  3. 操作の実例とデバッグの見方
  4. 1段ステップアップ:関数化と実行方法
  5. 注意(ここだけ)
  6. 要約

基本の理解と今回できること

今回できるようになることは、リスト・タプル・辞書・集合の違いを説明できて、簡単な操作を自分で書けるようになることです。

Pythonのコレクションは、複数の値をまとめて扱うためのデータ構造です。リストは順序付きで後から変更でき、タプルは順序付きですが変更できません。辞書はキーと値の組で管理し、集合は順序を前提にせず重複を持たない要素の集まりです。

まずは短いコードで、動きの違いを確認します。

最小コードは次のとおりです。

# 最小コード:リスト/タプル/辞書/集合の基本比較
lst = [1, 2, 3]                    # リスト(変更可)
tpl = (1, 2, 3)                    # タプル(不変)
dct = {"a": 1, "b": 2}             # 辞書(キー:値)
st = {1, 2, 2, 3}                  # 集合(重複除去)
lst.append(4)
# 表示
print("list:", lst)
print("tuple:", tpl)
print("dict keys:", list(dct.keys()))
print("set:", st)

このコードでは、4種類の変数を作ったうえで、appendによりリストだけを変更しています。出力を見ると、リストが更新されること、タプルがそのままであること、辞書がキーを持つこと、集合で重複が取り除かれることが確認できます。

データ型ごとの特徴と使い分けの基準

使い分けの基準は、順序が必要かどうか、変更するかどうか、キーで取り出すかどうか、重複を排除するかどうかで判断します。

リストは順序付きで、appendpop による追加や削除がしやすいです。タプルは不変なので、関数の戻り値として扱いやすく、辞書のキーとしても利用しやすいです(要素も含めてイミュータブルな場合に限ります)。辞書はキーを使って値を高速に取り出せます。集合はメンバーシップテストや集合演算(和・差・交差)が高速です。

型の確認は type() で行います。要素数は len() で確認します。

print(type(var))
print(len(var))

操作の実例とデバッグの見方

ここでは、よく使う操作の例を示します。デバッグの見方としては、printで値を逐次表示する方法が簡単です。大きなスクリプトではloggingを使うと便利です。次の例は、集合演算と辞書の取り扱いを示します。

# 集合と辞書操作の例
a = {1, 2, 3}
b = {2, 3, 4}
print("union:", a | b)             # 和集合
print("intersection:", a & b)      # 積集合
users = {"alice": 25, "bob": 30}
print("alice age:", users.get("alice"))

このコードでは、集合の和と積を表示し、辞書からキーで値を取り出します。出力例はunion: {1, 2, 3, 4}のようになります。

出力例は次のとおりです。

  • union: {1, 2, 3, 4}です。
  • intersection: {2, 3}です。
  • alice age: 25です。

要チェックとしては、まずprintで中間変数を出力して追いかけると状況を把握しやすいです。長期的には、logging.basicConfig(level=logging.DEBUG)を設定し、logging.debug()を使うと運用しやすいです。

1段ステップアップ:関数化と実行方法

小さなスクリプトを関数化すると再利用とテストが楽になります。ここではリストと集合の違いを確かめる関数を用意します。外部ライブラリは不要です。

# 関数化例:リストと集合で重複を扱う
def unique_list(seq):
    """順序を保持して重複を除去します"""
    seen = set()
    out = []
    for x in seq:
        if x not in seen:
            seen.add(x)
            out.append(x)
    return out

data = [1,2,2,3,1]
print("unique_list:", unique_list(data))

このコードでは、順序を保ちながら重複を除去する関数を作り、結果を表示します。出力例は unique_list: [1, 2, 3] です。

実行方法は python file.py で実行するか、VSCode の「実行」ボタンから実行します。ファイル名を example.py にして python example.py をターミナルで実行すると確認できます。

外部ライブラリが不要なため、pip の操作は不要です。

注意(ここだけ)

  • 集合や辞書のキーにミュータブル(変更できる)なオブジェクトを使うと TypeError になります。

    回避するには、キーにタプルなどのイミュータブル型を使うか、キーとして使うデータをハッシュ可能な形に変換してください。

要約

  • リストは順序付きで変更可能であり、追加や削除の操作に向いています。
  • タプルは不変であり、安全に共有したい値や辞書のキーとして扱いたい値に向いています。
  • 辞書はキーから値を高速に取り出せる連想配列として扱えます。
  • 集合は重複の排除や集合演算が得意であり、要素の存在確認が高速です。
  • 詰まりやすいポイントは「ミュータブルとイミュータブルの違い」であり、キーにできる型や各メソッドの挙動を要チェックにするとよいです。