目標
複数の集合に対して様々な要素の取り出し方法を理解し利用できる。
- 「演算子 | 」や「unionメソッド」を利用した和集合の取り出し
- 「演算子 & 」や「intersectionメソッド」を利用した積集合の取り出し
- 「演算子 – 」や「differenceメソッド」を利用した差集合の取り出し
- 「演算子 ^ 」を利用した対称差集合の取り出し
「複数の集合」に対して様々な要素の取り出し方法
「複数の集合」に対して様々な要素の取り出し方法
「集合」は「他の集合」と要素を比較し、「いずれかの集合に存在する要素」「いずれの集合にも存在する要素」「片方の集合にしかない要素」などのルールで新しい集合を取得することができます。具体的には以下の内容です。
- いずれかの集合に存在する要素(和集合)
- いずれの集合にも存在する共通の要素(積集合)
- いずれかの集合のうち、一方の集合の要素を取り除いた集合(差集合)
- 共通の要素を取り除いた集合(対象差集合)
「演算子 | 」や「unionメソッド」を利用した和集合の取り出し
和集合は、複数の集合の集まりのなかで、少なくともひとつの集合に含まれる要素を集めた集合のことです。ベン図では次の緑の範囲の要素をもつ集合となります。
和集合は「演算子 | 」や「unionメソッド」を利用して求めることができます。
サンプルプログラム
set_sample_no1 = {1, 2, 7, 9, 5}
set_sample_no2 = {5, 3, 8, 4, 2}
#「演算子 | 」を利用すると和集合を求めることができます。
print(set_sample_no1 | set_sample_no2)
print('------------------------------')
#「unionメソッド」を利用することでも和集合を求めることができます。
print(set_sample_no1.union(set_sample_no2))
実行結果
新しい変数に紐づける場合は「代入式 = 」を利用しますが、既存の集合で利用している変数の紐づけを更新する場合には「演算子 |= 」や「updateメソッド」を利用します。
「演算子 |= 」や「updateメソッド」を利用した変数の更新
サンプルプログラム
set_sample_no1 = {1, 2, 7, 9, 5}
set_sample_no2 = {5, 3, 8, 4, 2}
#「演算子 |= 」を利用すると、既存の変数(|=の左側の変数)を、求めた和集合に更新できます。
set_sample_no1 |= set_sample_no2
print(set_sample_no1)
print('------------------------------')
set_sample_no1 = {1, 2, 7, 9, 5}
set_sample_no2 = {5, 3, 8, 4, 2}
#「updateメソッド」を利用すると、既存の変数を、求めた和集合に更新できます。
set_sample_no1.update(set_sample_no2)
print(set_sample_no1)
print('------------------------------')
# 既存の変数を、求めた和集合に更新せず、新しい変数を利用する場合は代入式を利用します。
set_sample_no1 = {1, 2, 7, 9, 5}
set_sample_no2 = {5, 3, 8, 4, 2}
set_sample_no3 = set_sample_no1.union(set_sample_no2)
print(set_sample_no1)
print(set_sample_no3)
実行結果
「演算子 &」や「intersectionメソッド」を利用した積集合の取り出し
積集合は、複数の集合の集まりのなかで、全ての集合に共通に含まれる要素を集めた集合のことです。ベン図では次の濃い緑の範囲の要素(重なっている部分)となります。
積集合は「演算子 &」や「intersectionメソッド」を利用して求めることができます。
サンプルプログラム
set_sample_no1 = {1, 2, 7, 9, 5}
set_sample_no2 = {5, 3, 8, 4, 2}
#「演算子 & 」を利用すると積集合を求めることができます。
print(set_sample_no1 & set_sample_no2)
print('------------------------------')
#「intersectionメソッド」を利用することでも積集合を求めることができます。
print(set_sample_no1.intersection(set_sample_no2))
実行結果
新しい変数に紐づける場合は「代入式 = 」を利用しますが、既存の集合で利用している変数の紐づけを更新する場合には「演算子 &= 」や「intersection_updateメソッド」を利用します。
「演算子 &=」や「intersection_updateメソッド」を利用した変数の更新
サンプルプログラム
set_sample_no1 = {1, 2, 7, 9, 5}
set_sample_no2 = {5, 3, 8, 4, 2}
#「演算子 &= 」を利用すると、既存の変数(&=の左側の変数)を、求めた積集合に更新できます。
set_sample_no1 &= set_sample_no2
print(set_sample_no1)
print('------------------------------')
set_sample_no1 = {1, 2, 7, 9, 5}
set_sample_no2 = {5, 3, 8, 4, 2}
#「intersection_updateメソッド」を利用すると、既存の変数を、求めた積集合に更新できます。
set_sample_no1.intersection_update(set_sample_no2)
print(set_sample_no1)
print('------------------------------')
# 既存の変数を、求めた積集合に更新せず、新しい変数を利用する場合は代入式を利用します。
set_sample_no1 = {1, 2, 7, 9, 5}
set_sample_no2 = {5, 3, 8, 4, 2}
set_sample_no3 = set_sample_no1.intersection(set_sample_no2)
print(set_sample_no1)
print(set_sample_no3)
実行結果
「演算子 – 」や「difference メソッド」を利用した差集合の取り出し
差集合は、複数の集合の集まりのなかで、「ある集合」のうち、他の集合に含まれる要素を除いた集合のことです。ベン図では次の緑の範囲の要素となります。
集合1-集合2の場合
集合2-集合1の場合
差集合は「演算子 – 」や「differenceメソッド」を利用して求めることができます。
サンプルプログラム
set_sample_no1 = {1, 2, 7, 9, 5}
set_sample_no2 = {5, 3, 8, 4, 2}
#「演算子 - 」を利用すると差集合を求めることができます。
print('集合1 - 集合2',set_sample_no1 - set_sample_no2)
print('集合2 - 集合1',set_sample_no2 - set_sample_no1)
print('------------------------------')
#「differenceメソッド」を利用することでも差集合を求めることができます。
print('集合1 - 集合2',set_sample_no1.difference(set_sample_no2))
print('集合2 - 集合1',set_sample_no2.difference(set_sample_no1))
実行結果
新しい変数に紐づける場合は「代入式 = 」を利用しますが、既存の集合で利用している変数の紐づけを更新する場合には「演算子 -= 」や「difference_updateメソッド」を利用します。
「演算子 -= 」や「difference_updateメソッド」を利用した変数の更新
サンプルプログラム
set_sample_no1 = {1, 2, 7, 9, 5}
set_sample_no2 = {5, 3, 8, 4, 2}
#「演算子 -= 」を利用すると、既存の変数(-=の左側の変数)を、求めた差集合に更新できます。
set_sample_no1 -= set_sample_no2
print(set_sample_no1)
print('------------------------------')
set_sample_no1 = {1, 2, 7, 9, 5}
set_sample_no2 = {5, 3, 8, 4, 2}
#「difference_updateメソッド」を利用すると、既存の変数を、求めた差集合に更新できます。
set_sample_no1.difference_update(set_sample_no2)
print(set_sample_no1)
print('------------------------------')
# 既存の変数を、求めた差集合に更新せず、新しい変数を利用する場合は代入式を利用します。
set_sample_no1 = {1, 2, 7, 9, 5}
set_sample_no2 = {5, 3, 8, 4, 2}
set_sample_no3 = set_sample_no1.difference(set_sample_no2)
print(set_sample_no1)
print(set_sample_no3)
実行結果
「演算子 ^」や「symmetric_differenceメソッド」を利用した対称差集合の取り出し
対称差集合は、複数の集合の集まりのなかで、共通している要素を含めない集合のことです。ベン図では次の緑の範囲の要素となります。
対称差集合は「演算子 ^」や「symmetric_differenceメソッド」を利用して求めることができます。
サンプルプログラム
set_sample_no1 = {1, 2, 7, 9, 5}
set_sample_no2 = {5, 3, 8, 4, 2}
#「演算子 ^ 」を利用すると対称差集合を求めることができます。
print('対称差集合',set_sample_no1 ^ set_sample_no2)
print('------------------------------')
#「symmetric_differenceメソッド」を利用することでも対称差集合を求めることができます。
print('対称差集合',set_sample_no1.symmetric_difference(set_sample_no2))
実行結果
新しい変数に紐づける場合は「代入式 = 」を利用しますが、既存の集合で利用している変数の紐づけを更新する場合には「演算子 ^= 」や「symmetric_difference_updateメソッド」を利用します。
「演算子 ^= 」や「symmetric_difference_updateメソッド」を利用した変数の更新
サンプルプログラム
set_sample_no1 = {1, 2, 7, 9, 5}
set_sample_no2 = {5, 3, 8, 4, 2}
#「演算子 ^= 」を利用すると、既存の変数(^=の左側の変数)を、求めた対称差集合に更新できます。
set_sample_no1 ^= set_sample_no2
print(set_sample_no1)
print('------------------------------')
set_sample_no1 = {1, 2, 7, 9, 5}
set_sample_no2 = {5, 3, 8, 4, 2}
#「symmetric_difference_updateメソッド」を利用すると、既存の変数を、求めた対称差集合に更新できます。
set_sample_no1.symmetric_difference_update(set_sample_no2)
print(set_sample_no1)
print('------------------------------')
# 既存の変数を、求めた対称差集合に更新せず、新しい変数を利用する場合は代入式を利用します。
set_sample_no1 = {1, 2, 7, 9, 5}
set_sample_no2 = {5, 3, 8, 4, 2}
set_sample_no3 = set_sample_no1.symmetric_difference(set_sample_no2)
print(set_sample_no1)
print(set_sample_no3)
実行結果
今回は以上になります。
ブックマークのすすめ
「ほわほわぶろぐ」を常に検索するのが面倒だという方はブックマークをお勧めします。ブックマークの設定は別記事にて掲載しています。