集合とは

・集合を使って、リストやタプルから一意の要素を取り出せます
・{}内にカンマ区切りで要素を配置するか、set関数にシーケンス型(リストやタプル)を渡すことで生成します。

・set(リスト名)でリスト内にある要素から重複した要素を消して取り出せる
・for文とかで回して重複しているものを消したいときとかにも使える

 

 

集合のメソッド一覧

・set() 

 集合を新規作成

 

・{[リスト]}

 リストなどを{}で囲むと集合を初期化できる。set2 = {1, 2, 'A', ('x', 'y')}  # 初期データ

 

・add(文字列など)

 ()内の文字列や数値をsetの最後に代入する。set1.add(2)

・remove()
 setから要素を取り除く。指定した要素がないときはKeyErrorが発生する

 

・discard()

 setから要素を取り除く。指定した要素がないときは無視するのでエラーはでない。

 

・pop()

 setから要素を取り除いて、それを返す。setが空の時はエラーを返す。

 削除した要素を別のリストに移したり表示させたい場合などはpopを使う

 

・clear()

 setからすべての要素を取り除く

 


使い方

①空の集合を作成 

my_set = set() 

 

②初期値を持つ集合を作成 

my_set = {1, 2, 3, 4} 

 

③リストやタプルから集合を作成し、重複する要素を削除する 

list_example = [1, 1, 2, 3]

my_set = set(list_example)

 


集合の計算

 

①和集合 (Union)

・説明: 2つの集合を合わせた新しい集合を作成する。
・記号:  |
・メソッド:  union()

【例】
set_a = {1, 2, 3}
set_b = {3, 4, 5}

記号
print(set_a | set_b)  # 出力: {1, 2, 3, 4, 5}

メソッド
print(set_a.union(set_b))  # 出力: {1, 2, 3, 4, 5}


②積集合 (Intersection)
・説明: 2つの集合に共通する要素で新しい集合を作成する
・記号: &
・メソッド: intersection()

【例】
set_a = {1, 2, 3}
set_b = {3, 4, 5}


記号
print(set_a & set_b)  # 出力: {3}

メソッド
print(set_a.intersection(set_b))  # 出力: {3}


③差集合 (Difference)
説明: 1つ目の集合に存在する要素から、2つ目の集合の要素を引いた残りの要素で新しい集合を作成する。
記号: -
メソッド: difference()

【例】
set_a = {1, 2, 3}
set_b = {3, 4, 5}


記号
print(set_a - set_b)  # 出力: {1, 2}

メソッド
print(set_a.difference(set_b))  # 出力: {1, 2}

 

④ 対称差 (Symmetric Difference)

・説明: 片方の集合にしか存在しない要素(共通しない要素)で新しい集合を作成する。
・記号:  ^
・メソッド: symmetric_difference()

【例】
set_a = {1, 2, 3}
set_b = {3, 4, 5}


記号
print(set_a ^ set_b)  # 出力: {1, 2, 4, 5}

メソッド
print(set_a.symmetric_difference(set_b))  # 出力: {1, 2, 4, 5}


部分集合の確認 (Subset)

説明: 一方の集合が他方の集合の部分集合であるか確認します。
メソッド: issubset()

set_c = {1, 2}
set_d = {1, 2, 3}

メソッド
print(set_c.issubset(set_d))  # 出力: True


上位集合の確認 (Superset)
メソッド: issuperset()
説明: 一方の集合が他方の集合を含む上位集合であるか確認します。

print(set_d.issuperset(set_c))  # 出力: True