Qiita Advent Calendar 2025 のパイソニスタの一人アドカレ Day15 の記事です。
タプルとセットの特徴と使い分け
Python のコレクションには「リスト」以外にも便利な型があります。
今日は タプル(tuple) と セット(set) をまとめて理解しましょう。
1. タプル(tuple):変更できないリスト
■ タプルとは
- 順番がある
- 要素を変更できない(イミュータブル)
- ()(カッコ)で書く
- 要素の追加・削除・変更が不可
■ 使う場面
- 内容が固定で変わらない値を扱いたいとき
- 例:座標 (x, y)、設定値、曜日など
■ タプルの例
point = (10, 20)
print(point[0]) # 10
# point[0] = 30 # エラー:変更できない
■ リストとの比較
| 種類 | 変更可否 | 用途 |
|---|---|---|
| リスト | 変更できる | 可変データの管理 |
| タプル | 変更できない | 不変データ・安全に保持したい |
2. セット(set):重複なし・順番なしのデータ集合
■ セットとは
- 順番がない
- 重複を自動で削除
- {}(中カッコ)で書く
- 要素は追加・削除可能(可変)
■ 使う場面
- 重複を取り除きたいとき
- 集合演算(差・和・積)を使いたいとき
- 順番を気にしないデータを扱うとき
■ セットの例
fruits = {"apple", "banana", "apple"}
print(fruits) # {'apple', 'banana'} ← 重複が自動で削除
■ セットの基本操作
s = {1, 2, 3}
s.add(4) # 追加
s.remove(2) # 削除
print(s) # {1, 3, 4}
3. タプル・セット・リストの使い分け
| 型 | 順番 | 重複 | 変更可否 | 使う場面 |
|---|---|---|---|---|
| リスト | あり | あり | 可 | 順番が重要で、可変データを扱う |
| タプル | あり | あり | 不可 | 不変データ(座標・定数など) |
| セット | なし | なし | 可 | 重複排除、集合演算 |
4. 今日のミニ問題
Q1. 次のコードの出力は?
nums = {1, 2, 2, 3}
print(nums)
(ヒント:重複はどうなる?)
Q2. タプルを使うべき場面はどれ?
- 変わらないペア値(例:座標)
- 名前リスト(変更する可能性あり)
- 集合演算を使いたいとき