Pythonには複数の要素をまとめて扱う「コレクション型」というデータ構造が標準で用意されています。
コレクション型を理解することで、データの整理や操作がぐっと楽になり、プログラムの可読性や保守性も向上します。
本記事では、初心者向けに以下の4つのコレクション型を丁寧に解説します。
- リスト(list)
- タプル(tuple)
- 辞書(dict)
- セット(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 | 可変 | × | – | 重複排除、集合演算 |
演習問題
- リスト操作
nums = [1, 2, 3, 4, 5] の末尾に 6 を追加し、先頭の要素を削除してください。 - タプルのアンパック
coords = (100, 200, 300) をアンパックして変数 x, y, z に代入し、それぞれを表示してください。 - 辞書の更新とループ
student = {‘name’:’Bob’, ‘score’: 80} にキー grade を追加して値を ‘B’ に設定し、辞書の全キーと値をループで表示してください。 - セットの集合演算
A = {‘apple’, ‘orange’, ‘banana’} と B = {‘banana’, ‘kiwi’} の和集合と差集合を求めて表示してください。 - 応用問題
次の辞書 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プログラミングの基礎力が確実に身につきます。
頑張って演習問題にも取り組んでみてください!