集合の演算を行う(和集合、積集合、差集合、対称差集合)
【開発環境】
OS:Win10(64ビット)
言語:Python3.8.5(64bit)
Python の統合開発環境:IDLE
IDLEの操作は別サイト参照のこと
【和集合を求める】
和集合とは 2 つの集合の少なくともどちらか 1 つに含まれる要素の集合のこと。
・和集合を求めるには、演算子の | を使用するか、 set 型および frozenset 型で用意されている union メソッドを使う
・書式
集合 = 集合1 | 集合2
集合 = 集合1.union(集合2)
サンプルコード
Python 3.8.5 (tags/v3.8.5:580fbb0, Jul 20 2020, 15:57:54) [MSC v.1924 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license()" for more information.
>>> set1 = {"A", "B", "C", "D"}
>>> set2 = {"C", "D", "E", "F"}
>>>
>>> print(set1 | set2)
{'D', 'F', 'E', 'B', 'A', 'C'}
>>> print(set1.union(set2))
{'D', 'F', 'E', 'B', 'A', 'C'}
>>>
3 つ以上の集合について
集合 = 集合1 | 集合2 | 集合3 | ...
集合 = 集合1.union(集合2, 集合3, ...)
サンプルコード
>>> set1 = {"A", "B", "C", "D"}
>>> set2 = {"C", "D", "E", "F"}
>>> set3 = {"A", "C", "E", "G"}
>>> print(set1 | set2 | set3)
{'D', 'F', 'E', 'B', 'A', 'G', 'C'}
>>>
・和集合を新しい集合として取得するのではなく、最初の集合にそのまま保存するには。演算子の |= を使用するか set 型で用意されている update メソッドを使用します。
書式
集合1 |= 集合2
集合1.update(集合2)
サンプルコード
>>> set1 = {"A", "B", "C", "D"}
>>> set2 = {"C", "D", "E", "F"}
>>>
>>> set1.update(set2)
>>> print(set1)
{'D', 'F', 'E', 'B', 'A', 'C'}
>>>
【積集合を求める】
積集合を求めるには、演算子の & を使用するか、 set 型および frozenset 型で用意されている intersection メソッドを使う
書式
集合 = 集合1 & 集合2
集合 = 集合1.intersection(集合2)
サンプルコード
>>> set1 = {"A", "B", "C", "D"}
>>> set2 = {"C", "D", "E", "F"}
>>>
>>> print(set1 & set2)
{'D', 'C'}
>>> set1.intersection(set2)
{'D', 'C'}
>>>
・ 積集合を新しい集合として取得するのではなく、最初の集合にそのまま保存するには。演算子の &= を使用するか set 型で用意されている intersection_update メソッドを使う
書式
集合1 &= 集合2
集合1.intersection_update(集合2)
サンプルコード
>>> set1 = {"A", "B", "C", "D"}
>>> set2 = {"C", "D", "E", "F"}
>>>
>>> set1.intersection_update(set2)
>>> print(set1)
{'D', 'C'}
>>>
【差集合を求める】
差集合を求めるには、演算子の - を使用するか、 set 型および frozenset 型で用意されている difference メソッドを使う
書式
集合 = 集合1 - 集合2
集合 = 集合1.difference(集合2)
サンプルコード
>>> set1 = {"A", "B", "C", "D"}
>>> set2 = {"C", "D", "E", "F"}
>>> print(set1 - set2)
{'B', 'A'}
>>> print(set1.difference(set2))
{'B', 'A'}
>>>
・差集合を新しい集合として取得するのではなく、最初の集合にそのまま保存するには。演算子の -= を使用するか set 型で用意されている difference_update メソッドを使用
サンプルコード
>>> set1 = {"A", "B", "C", "D"}
>>> set2 = {"C", "D", "E", "F"}
>>> set1 -= set2
>>> print(set1)
{'B', 'A'}
>>>
【対称差集合を求める】
対称差集合を求めるには、演算子の ^ を使用するか、 set 型および frozenset 型で用意されている symmetric_difference メソッドを使用
・書式
集合 = 集合1 ^ 集合2
集合 = 集合1.symmetric_difference(集合2)
サンプルコード
>>> set1 = {"A", "B", "C", "D"}
>>> set2 = {"C", "D", "E", "F"}
>>> print(set1 ^ set2)
{'F', 'E', 'B', 'A'}
>>> print(set1.symmetric_difference(set2))
{'F', 'E', 'B', 'A'}
>>>
・積集合を新しい集合として取得するのではなく、最初の集合にそのまま保存するには。演算子の ^= を使用するか set 型で用意されている symmetric_difference_update メソッドを使用
書式
集合1 ^= 集合2
集合1.symmetric_difference_update(集合2)
サンプルコード
>>> set1 = {"A", "B", "C", "D"}
>>> set2 = {"C", "D", "E", "F"}
>>> set1 ^= set2
>>> print(set1)
{'F', 'E', 'B', 'A'}
>>>