Pythonのsetは集合の演算を全てサポートしています。
演算子を使う方法とset型のメソッドを使う方法があるので両方とも紹介します。
set型について
- 重複する要素を持たない、要素の集まり
- 順序づけはされない
- {}内に,区切りで要素を記述する
(例 : set_A = {1,3,4,5,2}) - set関数にシーケンスを渡す
以下の説明で
set_A = {1,2,3,4,5} set_B = {3,5,7}
を用いる
和集合(union)
AかBに含まれる
print(set_A | set_B) #{1, 2, 3, 4, 5, 7} print(set_A.union(set_B)) #{1, 2, 3, 4, 5, 7}
積集合(intersection)
AとBどちらにも含まれる
print(set_A & set_B) #{3, 5} print(set_A.intersection(set_B)) #{3, 5}
差集合(difference)
Aだけに含まれる
print(set_A - set_B) #{1, 2, 4} print(set_A.difference(set_B)) #{1, 2, 4}
対象差集合(symmetric difference)
AまたはBだけに含まれる
print(set_A ^ set_B) #{1, 2, 4, 7} print(set_A.symmetric_difference(set_B)) #{1, 2, 4, 7}
部分集合の判定
set_C = {1,2} set_D = {1,2,4,6} print(set_C <= set_D) #True print(set_C.issubset(set_D) #True print(set_C >= set_D) #False print(set_C.issuperset(set_D)) #False
互いに素かの判定
set_1 = {0,1} set_2 = {1,2} set_3 = {2,3} print(set_1.isdisjoint(set_2)) #False print(set_1.isdisjoint(set_3)) #True
コメント