05-Python

Python(Part.42)| python【集合(利用編-2)】【集合に対する様々な判定方法】

python| まとめ | 現役エンジニア&プログラミングスクール講師「python」のまとめページです。pythonに関して抑えておきたい知識や文法やにについて記事をまとめています。まとめページの下部には「おすすめの学習書籍」「おすすめのITスクール情報」「おすすめ求人サイト」について情報を掲載中...

目標

(pythonの)「集合」に対して様々な判定方法を理解し利用できる。

  • 「演算子 == 」「演算子 != 」を利用した等価性判定
  • 「in」「not in」を利用した帰属性判定
  • 「isdisjointメソッド」を利用した素の判定
  • 「演算子 <= 」「issubsetメソッド」を利用した部分集合の判定
  • 「演算子 < 」を利用した真部分集合の判定
  • 「演算子 >= 」「issupersetメソッド」を利用した超集合の判定
  • 「演算子 > 」を利用した真超集合の判定

(pythonの)「集合」の操作方法

(pythonの)「集合」に対する様々な判定方法

「集合」は要素に順序や重複がないことに基づく、集合同士の様々な演算を行うことができます。具体的には以下の内容です。

  • ふたつの集合が同様のものとする等価性の判定
  • ある集合の中に、任意の値の存在を確認する帰属性の判定
  • 比較する集合同士に共通の要素がないことを確認する素の判定
  • 集合がある集合の一部である部分集合の判定
  • 部分集合のうち真部分集合(等価でない部分集合)の判定
  • 集合が他の集合を全て含んでいる超集合の判定
  • 超集合のうち真超集合(等価でない超集合)の判定

「演算子 == 」「演算子 != 」を利用した等価性判定

等価性の判定とは、ある集合と、他の集合の要素が同じか、異なるかを判定します。

「演算子 == 」を利用する場合、比較する集合が等価であれば「True」、不等価であれば「False」を返します。

「演算子 != 」を利用する場合、比較する集合が等価であれば「False」、不等価であれば「True」を返します。

サンプルプログラム

set_sample_no1 = {1, 2, 3, 4, 5}
set_sample_no2 = {5, 3, 1, 4, 2}
set_sample_no3 = {1, 3, 5, 7, 9}

#「演算子 == 」は比較する集合が等価である場合「True」となります。
print(set_sample_no1 == set_sample_no2)
print(set_sample_no1 == set_sample_no3)
print('------------------------------')
#「演算子 != 」は比較する集合が等価である場合「False」となります。
#「!」は打消しの意味です。
print(set_sample_no1 != set_sample_no2)
print(set_sample_no1 != set_sample_no3)

実行結果

「in」「not in」を利用した帰属性判定

帰属性の判定とは、ある集合の中に、任意の値が存在するか、しないかを判定します。

「in 演算子」では、指定する値が集合のなかに存在する場合「True」、存在しない場合「False」を返します。

「not in 演算子」では、指定する値が集合のなかに存在する場合「False」、存在しない場合「True」を返します。

サンプルプログラム

set_sample_no4 = {1, 2, 3, 4, 5}

#「in 演算子」では、指定する値が集合のなかに存在する場合「True」となります。
print(3 in set_sample_no4)
print(10 in set_sample_no4)
print('------------------------------')
#「not in 演算子」では、指定する値が集合のなかに存在する場合「False」となります。
print(3 not in set_sample_no4)
print(10 not in set_sample_no4)

実行結果

「isdisjointメソッド」を利用した素の判定

素の判定とは、比較する集合同士に共通の要素があるか、ないかを判定します。

「isdisjoint メソッド」は比較する集合が素(共通の要素がない)の場合に「True」を返します。

サンプルプログラム

set_sample_no5 = {1, 3, 5, 7}
set_sample_no6 = {2, 4, 6, 8}
set_sample_no7 = {1, 2, 6, 8}

#「isdisjoint メソッド」は比較する集合が素(共通の要素がない)の場合に「True」を返します。
print(set_sample_no5.isdisjoint(set_sample_no6))
print('------------------------------')
# 比較する集合が素(共通の要素がない)でない場合は「False」を返します。
print(set_sample_no5.isdisjoint(set_sample_no7))

実行結果

「演算子 <= 」「issubsetメソッド」を利用した部分集合の判定

「部分集合」とは「ある集合」の「一部の集合」であることをさします。

「集合2」は「集合1」の部分集合。(下の両図)

部分集合の判定は「演算子 <= 」や「issubsetメソッド」を利用します。「集合2」は「集合1」の部分集合かを判定する場合、次のように記述します。

集合2 <= 集合1
集合2.issubset(集合1)

サンプルプログラム

set_sample_no8 = {1, 3, 5, 7, 9}
set_sample_no9 = {1, 5, 7}
set_sample_no10 = {1, 5, 8}

#「集合2 <= 集合1」は「集合2」が「集合1」の部分集合の場合に「True」を返します。
print(set_sample_no9 <= set_sample_no8)
print(set_sample_no10 <= set_sample_no8)
print('------------------------------')
#「集合2.issubset(集合1)」は「集合2」が「集合1」の部分集合の場合に「True」を返します。
print(set_sample_no9.issubset(set_sample_no8))
print(set_sample_no10.issubset(set_sample_no8))

実行結果

「演算子 < 」を利用した真部分集合の判定

「真部分集合」とは「部分集合」のうち「等価でない集合」であることをさします。

「集合2」は「集合1」の真部分集合。(下の右図のみ)

真部分集合の判定は「演算子 < 」を利用します。「集合2」は「集合1」の真部分集合かを判定する場合、次のように記述します。

集合2 < 集合1

サンプルプログラム

set_sample_no11 = {1, 3, 5, 7, 9}
set_sample_no12 = {1, 3, 5, 7, 9}
set_sample_no13 = {1, 3, 7, 9}

#「集合2 < 集合1」は「集合2」が「集合1」の真部分集合の場合に「True」を返します。
# 等価なので「False」となります(真部分集合でない)。
print(set_sample_no12 < set_sample_no11)
# 等価でないので「True」となります(真部分集合)。
print(set_sample_no13 < set_sample_no11)

実行結果

「演算子 >= 」「issupersetメソッド」を利用した超集合の判定

「超集合」とは「集合」が「他の集合」を全て含んでいる集合のことです。

「集合1」は「集合2」の超集合。(下の両図)

超集合の判定は「演算子 >= 」「issupersetメソッド」を利用します。「集合1」は「集合2」の超集合かを判定する場合、次のように記述します。

集合1 >= 集合2
集合1.issuperset(集合2)

サンプルプログラム

set_sample_no14 = {1, 3, 5, 7, 9}
set_sample_no15 = {1, 3, 5, 7, 9}
set_sample_no16 = {1, 5, 9}
set_sample_no17 = {1, 5, 8}

#「集合1>= 集合2」は「集合1」が「集合2」の超集合の場合に「True」を返します。
print(set_sample_no14 >= set_sample_no15)
print(set_sample_no14 >= set_sample_no16)
print(set_sample_no14 >= set_sample_no17)
print('------------------------------')
#「集合1.issuperset(集合2)」は「集合1」が「集合2」の超集合の場合に「True」を返します。
print(set_sample_no14.issuperset(set_sample_no15))
print(set_sample_no14.issuperset(set_sample_no16))
print(set_sample_no14.issuperset(set_sample_no17))

実行結果

「演算子 > 」を利用した真超集合の判定

「真超集合」とは「超集合」のうち「等価でない集合」のことをさします。

「集合1」は「集合2」の真超集合。(下の右図のみ)

真超集合の判定は「演算子 > 」を利用します。「集合1」は「集合2」の真超集合かを判定する場合、次のように記述します。

集合1 > 集合2

サンプルプログラム

set_sample_no14 = {1, 3, 5, 7, 9}
set_sample_no15 = {1, 3, 5, 7, 9}
set_sample_no16 = {1, 5, 9}
set_sample_no17 = {1, 5, 8}

#「集合1 > 集合2」は「集合1」が「集合2」の真超集合の場合に「True」を返します。
print(set_sample_no14 > set_sample_no15 )
print(set_sample_no14 > set_sample_no16 )
print(set_sample_no14 > set_sample_no17 )

実行結果

今回は以上になります。

「python」おすすめ書籍 ベスト3 | 現役エンジニア&プログラミングスクール講師「python」の学習でお勧めしたい書籍をご紹介しています。お勧めする理由としては、考え方、イメージなどを適切に捉えていること、「生のpython」に焦点をあてて解説をしている書籍であることなどが理由です。勿論、この他にも良い書籍はありますが、特に質の高かったものを選んで記事にしています。ページの下部には「おすすめのITスクール情報」「おすすめ求人サイト」について情報を掲載中。...

ブックマークのすすめ

「ほわほわぶろぐ」を常に検索するのが面倒だという方はブックマークをお勧めします。ブックマークの設定は別記事にて掲載しています。

「お気に入り」の登録・削除方法【Google Chrome / Microsoft Edge】「お気に入り」の登録・削除方法【Google Chrome / Microsoft Edge】について解説している記事です。削除方法も掲載しています。...
【パソコン選び】失敗しないための重要ポイント | 現役エンジニア&プログラミングスクール講師【パソコン選び】失敗しないための重要ポイントについての記事です。パソコンのタイプと購入時に検討すべき点・家電量販店で見かけるCPUの見方・購入者が必要とするメモリ容量・HDDとSSDについて・ディスプレイの種類・バッテリーの持ち時間や保証・Officeソフト・ウィルス対策ソフトについて書いています。...
RELATED POST