集合の基本操作
Pythonの集合(set)は、重複しない要素の集まりを扱うデータ型であり、数学的な集合の概念を基にしています。集合は順序を持たず、リストやタプルのようにインデックスで要素にアクセスすることはできませんが、重複を許さない要素管理や効率的な集合演算を行うのに非常に便利です。この記事では、Pythonの集合の基本操作について解説します。
集合の定義
Pythonで集合を定義するには、中括弧{}
を使います。集合に重複した要素を追加しようとしても、重複は無視され、1つの要素として扱われます。以下は集合の定義例です。
# 集合の定義
fruits = {"apple", "banana", "cherry", "apple"} # 'apple' は1度だけ格納される
print(fruits) # {'apple', 'banana', 'cherry'}
この例では、重複した要素'apple'
が無視され、1度だけ表示されます。
要素の追加と削除
集合に要素を追加したり、削除することができます。要素を追加するにはadd()
メソッドを、要素を削除するにはremove()
またはdiscard()
メソッドを使用します。
# 要素の追加と削除
fruits = {"apple", "banana", "cherry"}
# 要素の追加
fruits.add("orange")
print(fruits) # {'apple', 'banana', 'cherry', 'orange'}
# 要素の削除
fruits.remove("banana")
print(fruits) # {'apple', 'cherry', 'orange'}
remove()
メソッドは、指定した要素が存在しない場合にエラーを発生させますが、discard()
メソッドはエラーを発生させません。
集合の操作
集合では、和集合、積集合、差集合といった数学的な集合演算を簡単に行うことができます。これらの操作は、データの重複を排除したり、共通の要素を抽出したりする際に便利です。
和集合(union)
# 和集合
set_a = {1, 2, 3}
set_b = {3, 4, 5}
# 和集合を求める
union_set = set_a.union(set_b)
print(union_set) # {1, 2, 3, 4, 5}
積集合(intersection)
# 積集合
set_a = {1, 2, 3}
set_b = {3, 4, 5}
# 積集合を求める
intersection_set = set_a.intersection(set_b)
print(intersection_set) # {3}
差集合(difference)
# 差集合
set_a = {1, 2, 3}
set_b = {3, 4, 5}
# 差集合を求める
difference_set = set_a.difference(set_b)
print(difference_set) # {1, 2}
これらの集合演算により、重複を排除したデータの操作や分析が効率的に行えます。
集合のメソッド一覧
集合を操作するための主要なメソッドを以下にまとめます。
メソッド | 説明 | 例 |
---|---|---|
add() |
集合に要素を追加する | fruits.add("grape") |
remove() |
指定した要素を削除する (存在しない場合はエラー) |
fruits.remove("apple") |
discard() |
指定した要素を削除する (存在しない場合でもエラーにならない) |
fruits.discard("pear") |
union() |
2つの集合の和集合を求める | set_a.union(set_b) |
intersection() |
2つの集合の積集合を求める | set_a.intersection(set_b) |
difference() |
2つの集合の差集合を求める | set_a.difference(set_b) |
まとめ
Pythonの集合は、重複しない要素の集まりを効率的に管理し、和集合、積集合、差集合といった数学的な操作が簡単に行える強力なデータ型です。データの重複を排除したり、要素の集合演算を行いたい場合に非常に便利です。集合のメソッドを使いこなすことで、データ操作を効率化できます。