Pythonのコレクション型入門:リスト、タプル、辞書、セットを理解しよう

Pythonには複数の要素をまとめて扱う「コレクション型」というデータ構造が標準で用意されています。

コレクション型を理解することで、データの整理や操作がぐっと楽になり、プログラムの可読性や保守性も向上します。

本記事では、初心者向けに以下の4つのコレクション型を丁寧に解説します。

  1. リスト(list)
  2. タプル(tuple)
  3. 辞書(dict)
  4. セット(set)

さらに、最後に「演習問題」と「解答例」を用意しました。学んだ内容を実際に手を動かして復習しましょう。


リスト(list)

リストとは?

リストは順序付きの可変長シーケンスです。

要素の追加・削除が自由にでき、重複を許します。

fruits = ['apple', 'banana', 'orange']

主な操作

インデックスアクセス
print(fruits[0])   # 'apple'
print(fruits[-1])  # 'orange'
要素の追加・削除
fruits.append('grape')    # 末尾に追加
fruits.insert(1, 'melon') # インデックス1に挿入
fruits.remove('banana')   # 指定要素を削除
fruits.pop()              # 末尾を取り出して削除
スライス
nums = [1, 2, 3, 4, 5]
print(nums[1:4])  # [2, 3, 4]
その他のメソッド
  • len(list):長さを取得
  • list.sort():昇順にソート
  • list.reverse():順序を逆転

タプル(tuple)

タプルとは?

タプルはリストに似ていますが「不変(immutable)」です。定義後に要素の変更はできません。

point = (10, 20)

タプルの特徴と使い所

  • 要素の更新・削除ができないので、関数の戻り値や定数データとして使うと安全。
  • リストに比べてメモリ使用量が少しだけ少ない。

基本操作

x, y = point        # アンパック
print(point[0])     # 10
print(len(point))   # 2
# point[0] = 5    # エラー:TypeError

辞書(dict)

辞書とは?

辞書は「キーと値」の組み合わせを管理するマッピング型です。キーは不変型(数値、文字列、タプルなど)しか使えません。

person = {
    'name': 'Alice',
    'age': 30,
    'city': 'Tokyo'
}

主な操作

アクセス・更新
print(person['name'])    # 'Alice'
person['age'] = 31       # 更新
person['job'] = 'Engineer'  # 新規キー追加
キーの存在確認
if 'city' in person:
    print('City:', person['city'])
キー・値の削除
del person['job']
person.pop('city')       # 削除して値を返す
全要素の取得
for key, value in person.items():
    print(key, '→', value)

セット(set)

セットとは?

セットは「重複を許さない順序なしコレクション」です。集合演算(和・積・差)などもサポート。

colors = {'red', 'green', 'blue'}

主な操作

追加・削除
colors.add('yellow')
colors.remove('green')
集合演算
a = {1, 2, 3}
b = {2, 3, 4}
print(a | b)  # 和集合 {1,2,3,4}
print(a & b)  # 積集合 {2,3}
print(a - b)  # 差集合 {1}
その他
  • len(set):要素数
  • set.clear():全削除

まとめ

可変性重複許可順序性主な用途
list可変シーケンス操作、順序管理
tuple不変定数データ、関数の戻り値
dict可変–(キー)–(キー)キーと値のマッピング管理
set可変×重複排除、集合演算

演習問題

  1. リスト操作
    nums = [1, 2, 3, 4, 5] の末尾に 6 を追加し、先頭の要素を削除してください。
  2. タプルのアンパック
    coords = (100, 200, 300) をアンパックして変数 x, y, z に代入し、それぞれを表示してください。
  3. 辞書の更新とループ
    student = {‘name’:’Bob’, ‘score’: 80} にキー grade を追加して値を ‘B’ に設定し、辞書の全キーと値をループで表示してください。
  4. セットの集合演算
    A = {‘apple’, ‘orange’, ‘banana’} と B = {‘banana’, ‘kiwi’} の和集合と差集合を求めて表示してください。
  5. 応用問題
    次の辞書 data = {‘a’:[1,2], ‘b’:(3,4), ‘c’:{5,6}} において、キー ‘a’ のリストに 3 を追加し、キー ‘b’ のタプルをアンパックして合計値を計算し、キー ‘c’ のセットに 7 を追加した後の data を表示してください。

解答例

# 1. リスト操作
nums = [1, 2, 3, 4, 5]
nums.append(6)      # [1,2,3,4,5,6]
nums.pop(0)         # 先頭を削除 → [2,3,4,5,6]
print(nums)

# 2. タプルのアンパック
coords = (100, 200, 300)
x, y, z = coords
print(x, y, z)      # 100 200 300

# 3. 辞書の更新とループ
student = {'name':'Bob', 'score': 80}
student['grade'] = 'B'
for key, value in student.items():
    print(f"{key} → {value}")
# name → Bob
# score → 80
# grade → B

# 4. セットの集合演算
A = {'apple', 'orange', 'banana'}
B = {'banana', 'kiwi'}
print("和集合:", A | B)  # {'apple','orange','banana','kiwi'}
print("差集合:", A - B)  # {'apple','orange'}

# 5. 応用問題
data = {'a':[1,2], 'b':(3,4), 'c':{5,6}}
# 'a'のリストに3を追加
data['a'].append(3)        # [1,2,3]
# 'b'のタプルをアンパックして合計
b1, b2 = data['b']
sum_b = b1 + b2            # 7
print("bの合計:", sum_b)
# 'c'のセットに7を追加
data['c'].add(7)           # {5,6,7}
print(data)

以上で「Pythonのコレクション型入門:リスト、タプル、辞書、セットを理解しよう」の解説を終わります。

各コレクション型の特徴を比較しつつ、実際に手を動かして学習することで、Pythonプログラミングの基礎力が確実に身につきます。

頑張って演習問題にも取り組んでみてください!