集合とは、重複する要素を持たず、要素間に順序が存在しない要素の集まりです。
集合型の宣言方法
- 集合型は set() 関数もしくは波括弧 {} で囲って作成します。
- リストやタプルから集合型を作ることもできます。
basket = {'apple', 'orange', 'apple', 'pear', 'orange', 'banana'}
print(basket) #出力:{'banana', 'apple', 'orange', 'pear'}
lst = ['apple', 'orange', 'apple', 'pear', 'orange', 'banana']
print(lst) #出力:['apple', 'orange', 'apple', 'pear', 'orange', 'banana']
basket = set(lst)
print(basket) #出力:{'banana', 'apple', 'orange', 'pear'}
集合の演算
要素を追加する
セットの変数名.add(要素)
basket = {'apple', 'orange', 'apple', 'pear', 'orange', 'banana'} print(basket) #出力:{'banana', 'apple', 'orange', 'pear'} basket.add("onigiri") print(basket) #出力:{'banana', 'apple', 'orange', 'pear', 'onigiri'}
要素を削除する
セットの変数名.remove(要素)
basket = {'apple', 'orange', 'apple', 'pear', 'orange', 'banana'} print(basket) #出力:{'banana', 'apple', 'orange', 'pear'} basket.remove("apple") print(basket) #出力:{'banana', 'orange', 'pear'}
和集合
| または セットの変数名.union(セットの変数名)
a = set('abracadabra') print('a:', a) #a: {'c', 'r', 'd', 'b', 'a'} b = set('alacazam') print('b:', b) #b: {'m', 'l', 'c', 'z', 'a'} # 和集合 c1 = a | b c2 = a.union(b) print(c1) #{'a', 'b', 'c', 'd', 'l', 'm', 'r', 'z'} print(c2) #{'a', 'b', 'c', 'd', 'l', 'm', 'r', 'z'}
差集合
– または セットの変数名.intersection(セットの変数名)
a = set('abracadabra') print('a:', a) #a: {'c', 'r', 'd', 'b', 'a'} b = set('alacazam') print('b:', b) #b: {'m', 'l', 'c', 'z', 'a'} #差集合 c1 = a - b c2 = a.intersection(b) print(c1) #{'b', 'd', 'r'} print(c2) #{'b', 'd', 'r'}
積集合
& または セットの変数名.difference(セットの変数名)
a = set('abracadabra') print('a:', a) #a: {'c', 'r', 'd', 'b', 'a'} b = set('alacazam') print('b:', b) #b: {'m', 'l', 'c', 'z', 'a'} #積集合 c1 = a & b c2 = a.difference(b) print(c1) #{'a', 'c'} print(c2) #{'a', 'c'}
対象差
^ または セットの変数名.symmetric_difference(セットの変数名)
a = set('abracadabra') print('a:', a) #a: {'c', 'r', 'd', 'b', 'a'} b = set('alacazam') print('b:', b) #b: {'m', 'l', 'c', 'z', 'a'} #対象差(片方の集合にのみ所属する要素の集合) c1 = a ^ b c2 = a.symmetric_difference(b) print(c1) #{'b', 'd', 'l', 'm', 'r', 'z'} print(c2) #{'b', 'd', 'l', 'm', 'r', 'z'}