python

【python】set(集合型)

集合とは、重複する要素を持たず、要素間に順序が存在しない要素の集まりです。

集合型の宣言方法

  • 集合型は 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'}