「Pythonの基礎 - 集合の作成と操作」の版間の差分

提供:MochiuWiki - SUSE, Electronic Circuit, PCB
ナビゲーションに移動 検索に移動
(Wiki がページ「集合の作成と操作(Python)」を「Pythonの基礎 - 集合の作成と操作」に、リダイレクトを残さずに移動しました)
15行目: 15行目:
  # 出力
  # 出力
  <class 'set'>
  <class 'set'>
  {1, 3, 5, }
  {1, 3, 5, 6, 7, 8, 9}
  </source>
  </source>
<br>
<br>

2021年11月15日 (月) 02:06時点における版

概要

Pythonにおける集合とは、辞書の値の無いキーだけの集まりのようなものである。
複数の集合に共通の要素があるのか、片方にあって片方に無いものは何かといった計算をすることができる。


集合の宣言

集合は要素を波括弧{}で括って宣言する。
集合の要素には、同じ値が複数存在せず、ただ1つだけである。なので、複数の同じ値を集合の要素に入れても要素は整理される。

 a = {1, 3, 5, 7, 9}
 b = {1, 1, 1, 3, 5, 7, 8, 5, 6, 6, 3, 3, 9, 7}
 print(type(a))
 print(b)
 
 # 出力
 <class 'set'>
 {1, 3, 5, 6, 7, 8, 9}


また、空集合は値を入れずに波括弧{}で括るのではなく、set関数で作成する。
以下の例では、aは辞書になる。(波括弧{}で括ることは、辞書も集合も同じ)

 a = {}
 b = set()
 print(type(a))
 print(type(b))
 
 # 出力
 <class 'dict'>
 <class 'set'>



集合のメソッド

Pythonの集合に要素を加えるには、add関数を使用する。

 x = set()
 x.add(10)
 x.add('Python')
 print(x)
 
 # 出力
 {10, 'Python'}


また、集合の要素を削除するには、remove関数を使用する。
集合の要素を全て削除するには、clear関数を使用する。

 x = {1, 2, 3, 4, 5}
 x.remove(5)
 print(x)
 
 x.clear()
 print(x)
 
 # 出力
 {1, 2, 3, 4}
 {}



set関数を使用して集合に変換する

set関数を使用すれば、文字列、リスト、タプル、辞書から重複する要素を取り除いて集合を作成することができる。
以下の例では、重複した要素は整理されているのが分かる。辞書においては、キーが集合に変換されている。

 a = set('PythonPython')
 b = set(['Python', 'JavaScript', 'PHP', 'Python', 'JavaScript', 'Python'])
 c = set(('Python', 'JavaScript', 'PHP', 'C', 'JavaScript', 'Ruby', 'Swift'))
 d = set({'x':100, 'y':200, 'z':300})
 
 # 出力
 {'P', 'y', 't', 'h', 'o', 'n'}
 {'Python', 'JavaScript', 'PHP'}
 {'Python', 'JavaScript', 'PHP', 'C', 'Ruby', 'Swift'}
 {'x', 'y', 'z'}



集合の演算

積集合

積集合は、両方の集合に共通する要素からなる集合である。
アンパサンド&またはintersection関数を使用して求めることができる。

 a = {1, 2, 3}
 b = {2, 3, 4}
 c = a & b
 d = a.interseciton(b)
 print(c)
 print(d)
 
 # 出力
 {2, 3}
 {2, 3}


和集合

和集合は、少なくともどちらかの集合に要素が含まれている集合である。
バーティカルバー|またはunion関数を使用して求めることができる。

 a = {1, 2, 3}
 b = {2, 3, 4}
 c = a | b
 d = a.union(b)
 print(c)
 print(d)
 
 # 出力
 {1, 2, 3, 4}
 {1, 2, 3, 4}


差集合

差集合は、一方には含まれているがもう一方には含まれていない要素の集合である。
マイナス-またはdifference関数で求めることができる。

 a = {1, 2, 3}
 b = {2, 3, 4}
 c = a - b
 d = a.difference(b)
 
 # 出力
 {1}
 {1}


XOR

XORは、どちらか片方に含まれるが両方には含まれない要素の集合である。
キャレット^またはsymmetric_difference関数で求めることができる。

 a = {1, 2, 3}
 b = {2, 3, 4}
 c = a ^ b
 d = a.symmetric_difference(b)
 print(c)
 print(d)
 
 # 出力
 {1, 4}
 {1, 4}