Pythonのセット(Sets)は、複数の要素を一つのコレクションとして保持するためのデータ構造です。セットは、ユニークな要素を保持し、順序がないことが特徴です。
セットの特徴
- ユニークな要素(Unique Elements):
- セットは各要素が一意であることを保証します。同じ値の要素を複数回持つことはできません。
- 順序がない(Unordered):
- セット内の要素は順序を持ちません。そのため、セットの要素にインデックスを使用してアクセスすることはできません。
- 変更可能(Mutable):
- セットはミュータブル(可変)であり、作成後も要素の追加や削除が可能です。ただし、セット内の要素自体はイミュータブル(不変)である必要があります。
- 重複を許さない(No Duplicates):
- セット内に同じ値の要素を複数回持つことはできません。一度追加された要素は、重複して追加されることはありません。
セットの作成と操作
Pythonでは、セットは波括弧 {} を使用して作成されます。また、set() コンストラクタを使用することもできます。
セットの作成例
# セットの作成
my_set = {1, 2, 3, 4}
print(my_set) # 出力: {1, 2, 3, 4}
# set() コンストラクタを使用してセットを作成
another_set = set([4, 5, 6])
print(another_set) # 出力: {4, 5, 6}
ユニークな要素の例
# 重複する要素は追加されない
unique_set = {1, 2, 2, 3, 4, 4}
print(unique_set) # 出力: {1, 2, 3, 4}
要素の追加と削除の例
# 要素の追加
my_set.add(5)
print(my_set) # 出力: {1, 2, 3, 4, 5}
# 要素の削除
my_set.remove(3)
print(my_set) # 出力: {1, 2, 4, 5}
# 存在しない要素を削除しようとするとエラーが発生する
# my_set.remove(10) # KeyError
# 存在しない要素を削除してもエラーが発生しない方法
my_set.discard(10)
print(my_set) # 出力: {1, 2, 4, 5}
セットの操作(集合演算)の例
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 = set_a.intersection(set_b)
print(intersection_set) # 出力: {3}
# 差集合
difference_set = set_a.difference(set_b)
print(difference_set) # 出力: {1, 2}
# 対称差集合
symmetric_difference_set = set_a.symmetric_difference(set_b)
print(symmetric_difference_set) # 出力: {1, 2, 4, 5}
主な使用例
- 重複の排除: リストなどのコレクションから重複する要素を削除するために使用します。
- 集合演算: 和集合、積集合、差集合などの数学的集合演算を効率的に行うために使用します。
