Python入門:セットと集合演算
セットの集合演算
セットは他のコンテナ(リスト、ディクショナリなど)とは違い、インデントやキーといった概念ありません。そのため、複数の値を一つのグループにまとめるときに利用します。
また、セットは集合演算を用いて和集合、積集合、差集合、対称差を求めることができます。
集合 | 定義方法 |
---|---|
和集合 | セット名 | セット名 |
積集合 | セット名 & セット名 |
差集合 | セット名 - セット名 |
対称差 | セット名 | セット名 |
集合演算の書き方
#和集合の利用
a = {1,2,3}
b = {3,4,5}
c = a | b
print(c)
{1, 2, 3, 4, 5}
和集合は2つのセットのすべての値を求めます。セットなので重複する内容は1つの値になります。
#積集合の利用
a = {1,2,3}
b = {3,4,5}
c = a & b
print(c)
{3}
積集合は、2つのセットの共通する値を求めます。
#差集合の利用
a = {1,2,3}
b = {3,4,5}
c = a - b
print(c)
{1, 2}
差集合は、左側のセットから、右側のセットと共通する値を取り除いた集合を求めます。
差集合の場合、左右のセットを入れ替えることによって2通りの集合が求められます。
#対称差の利用
a = {1,2,3}
b = {3,4,5}
c = a ^ b
print(c)
{1, 2, 4, 5}
対称差は、和集合から積集合を取り除いた集合を求めます。または、差集合で求められる2つの集合の和集合にもなります。
練習問題
では、これまでの内容をもとに次のプログラムを作ってみましょう!
0~10までの数字の偶数の集合と0~10までの数字の3の倍数の集合がありました。
- 2つの集合の和集合、積集合、差集合、対称差を表示する
解答例※あくまで一例です。
(1)
mulTow = {0,2,4,6,8,10}
mulThree = {0,3,6,9}
#和集合
print("和集合:"+str(mulTow | mulThree))
#積集合
print("積集合:"+str(mulTow & mulThree))
#差集合
print("差集合(偶数):"+str(mulTow - mulThree))
print("差集合(奇数):"+str(mulThree - mulTow))
#対称差
print("対称差:"+str(mulTow ^ mulThree))
和集合:{0, 2, 3, 4, 6, 8, 9, 10}
積集合:{0, 6}
差集合(偶数-3の倍数):{8, 2, 10, 4}
差集合(3の倍数-偶数):{9, 3}
対称差:{2, 3, 4, 8, 9, 10}
最後に
この記事では、Pythonのセットの集合演算について解説しました。
もっとPythonを学びたい!という方はこちらの記事でPythonの基本的な構文を学習することが出来ますのでぜひ立ち寄ってみてください!