
【6日でできるPython入門】組み込み型 集合
集合(set型)は、Pythonの組み込み型のひとつで「重複しないデータの集まり」を表します。
リストや辞書ほど頻繁には使いませんが、「データの重複を排除したい」「数学的な集合演算(和・積・差)を使いたい」場面では非常に強力な道具になります。
ここでは、集合の基本操作から便利なメソッド、リストなど他の型との違いを詳しく解説します。

1.集合の基本
1.1. 集合の作成と特徴
集合は波括弧 { } で作成し、カンマ区切りで要素を並べます。
重複は自動的に排除されます。空の集合は set()
を使います(空の {}
は空辞書になるので注意)。
ファイル名: lesson10-1.py
# 集合の作成と基本操作
colors = {'赤', '青', '緑', '青'}
print("色の集合:", colors)
empty_set = set()
print("空の集合:", empty_set)
fruits_list = ['りんご', 'バナナ', 'りんご', 'みかん']
unique_fruits = set(fruits_list)
print("重複を除いた果物:", unique_fruits)
実行結果
色の集合: {'赤', '緑', '青'}
空の集合: set()
重複を除いた果物: {'バナナ', 'みかん', 'りんご'}
操作例 | 内容 |
---|---|
{'A', 'B', 'C'} | 集合(重複不可、順番保証なし) |
set([リスト]) | リスト等から集合へ変換、重複を自動で排除 |
set() | 空集合の作成 |
{} | 空辞書になるので注意 |
1.2. 集合の要素追加・削除
集合にはadd()
で要素を追加し、remove()
で削除できます。
ファイル名: lesson10-2.py
# 集合への追加と削除
members = {'佐藤', '鈴木', '高橋'}
members.add('田中')
print("田中を追加:", members)
members.remove('佐藤')
print("佐藤を削除:", members)
実行結果
田中を追加: {'佐藤', '鈴木', '田中', '高橋'}
佐藤を削除: {'鈴木', '田中', '高橋'}
メソッド | 内容 | 例 |
---|---|---|
add(value) | 要素を1つ追加 | s.add('新しい要素') |
remove(value) | 要素を削除(なければエラー) | s.remove('削除する要素') |
discard(value) | removeと同じ(なければ無視) | s.discard('要素') |
clear() | 全要素を削除 | s.clear() |
2.集合の演算と使い方
2.1. 集合の数学的な演算(和・積・差・対称差)
集合は数学的な演算が可能です。
複数の集合間で共通項やすべての要素、片方にしかない要素などを簡単に求められます。
ファイル名: lesson10-3.py
# 集合の演算例
a = {'apple', 'banana', 'cherry'}
b = {'banana', 'cherry', 'date', 'fig'}
print("積集合(共通する果物):", a & b)
print("和集合(すべての果物):", a | b)
print("差集合(aにだけある果物):", a - b)
print("対称差集合(どちらか一方にだけある果物):", a ^ b)
実行結果
積集合(共通する果物): {'cherry', 'banana'}
和集合(すべての果物): {'cherry', 'banana', 'apple', 'fig', 'date'}
差集合(aにだけある果物): {'apple'}
対称差集合(どちらか一方にだけある果物): {'fig', 'date', 'apple'}
操作例 | 内容 | メソッド | 記号 |
---|---|---|---|
a & b | 積集合(共通部分) | a.intersection(b) | & |
a | b | 和集合(全要素の集合) | a.union(b) |
a - b | 差集合(aにだけある要素) | a.difference(b) | - |
a ^ b | 対称差集合(片方だけにある要素) | a.symmetric_difference(b) | ^ |
2.2. その他の主な集合メソッド
メソッド名 | 概要 | 例 |
---|---|---|
isdisjoint(other) | 互いに共通要素がなければTrue | a.isdisjoint(b) |
issubset(other) | 自分がotherの部分集合ならTrue | a.issubset(b) |
issuperset(other) | 自分がotherの上位集合ならTrue | a.issuperset(b) |
copy() | 集合のコピーを作る | a.copy() |
このように集合型は「重複を除く」「集合演算でデータを比較・分析する」などの用途に最適です。
必要な場面で上手に使いこなして、Pythonでのデータ処理力をさらに高めていきましょう!