はじめに
この実験では、Python である集合が別の集合の部分集合であるかどうかを判断する方法を学びます。まず、部分集合の概念を理解し、2 つの集合 set1 と set2 を作成して、それらの関係を調べます。issubset() メソッドを使用して、set1 が set2 の部分集合であるかどうかをチェックする Python スクリプトを作成し、set1 のすべての要素が set2 に含まれているかどうかに基づいて、出力結果 True または False を確認します。
次に、この実験では issubset() メソッドについてさらに詳しく調べ、様々なシナリオを検討することで理解を深めます。集合の要素を変更してスクリプトを再実行し、出力がどのように変化するかを観察することで、部分集合の概念と issubset() メソッドの機能を強化します。
部分集合を理解する
このステップでは、Python の部分集合について学びます。部分集合とは、その要素がすべて別の集合に含まれる集合のことです。部分集合を理解することは、データ検証、フィルタリング、関係解析など、様々なプログラミングタスクにおいて重要です。
まず、2 つの集合を作成しましょう。
set1 = {1, 2, 3}
set2 = {1, 2, 3, 4, 5}
ここで、set1 は要素 1、2、3 を含み、set2 は要素 1、2、3、4、5 を含んでいます。set1 が set2 の部分集合であるかどうかを判断したいと思います。
これを行うには、VS Code エディタを使用して ~/project ディレクトリに subset_check.py という名前の Python スクリプトを作成します。VS Code を開き、~/project ディレクトリに subset_check.py という名前の新しいファイルを作成します。
次に、subset_check.py に以下のコードを追加します。
set1 = {1, 2, 3}
set2 = {1, 2, 3, 4, 5}
is_subset = set1.issubset(set2)
print(is_subset)
ファイルを保存します。
次に、ターミナルで python コマンドを使用してスクリプトを実行します。
python subset_check.py
出力は以下のようになります。
True
これは、set1 のすべての要素が set2 にも含まれているため、set1 が確かに set2 の部分集合であることを示しています。
次に、set1 が set2 の部分集合ではない別の例を考えてみましょう。
subset_check.py ファイルを以下のように変更します。
set1 = {1, 2, 6}
set2 = {1, 2, 3, 4, 5}
is_subset = set1.issubset(set2)
print(is_subset)
ファイルを保存し、再度実行します。
python subset_check.py
出力は以下のようになります。
False
これは、set1 には set2 に含まれていない要素 6 が含まれているためです。したがって、set1 は set2 の部分集合ではありません。
issubset() メソッドを使用する
前のステップでは、部分集合の基本概念を学び、issubset() メソッドを使用した簡単な例を見ました。このステップでは、様々なシナリオを用いて issubset() メソッドについて詳しく調べます。
issubset() メソッドは、Python の組み込みメソッドで、集合に対して使用できます。ある集合のすべての要素が別の集合に含まれている場合(つまり、その集合が部分集合である場合)は True を返し、そうでない場合は False を返します。
スキルを表す 2 つの集合があるシナリオを考えてみましょう。
skills1 = {"Python", "Data Analysis"}
skills2 = {"Python", "Data Analysis", "Machine Learning", "SQL"}
ここで、skills1 はジュニアデータサイエンティストのスキルを表し、skills2 はシニアデータサイエンティストに必要なスキルを表しています。ジュニアデータサイエンティストのスキルがシニアデータサイエンティストに必要なスキルの部分集合であるかどうかを確認したいと思います。
VS Code を使用して ~/project ディレクトリ内の subset_check.py ファイルを開きます。ファイルの内容を以下のように変更します。
skills1 = {"Python", "Data Analysis"}
skills2 = {"Python", "Data Analysis", "Machine Learning", "SQL"}
is_subset = skills1.issubset(skills2)
print(is_subset)
ファイルを保存します。
次に、ターミナルで python コマンドを使用してスクリプトを実行します。
python subset_check.py
出力は以下のようになります。
True
これは、skills1 が skills2 の部分集合であることを示しており、つまりジュニアデータサイエンティストのスキルがシニアデータサイエンティストに必要なスキルの部分集合であることを意味します。
次に、skills1 が skills2 の部分集合ではない別のシナリオを考えてみましょう。
subset_check.py ファイルを以下のように変更します。
skills1 = {"Python", "Data Analysis", "Cloud Computing"}
skills2 = {"Python", "Data Analysis", "Machine Learning", "SQL"}
is_subset = skills1.issubset(skills2)
print(is_subset)
ファイルを保存し、再度実行します。
python subset_check.py
出力は以下のようになります。
False
これは、skills1 には skills2 に含まれていない "Cloud Computing" が含まれているためです。したがって、skills1 は skills2 の部分集合ではありません。
<= 演算子でチェックする
前のステップでは、ある集合が別の集合の部分集合であるかどうかをチェックするために issubset() メソッドを使用する方法を学びました。このステップでは、<= 演算子を使用して部分集合をチェックする別の方法を学びます。
<= 演算子は、ある集合が別の集合の部分集合であるかどうかをチェックするために使用できます。左側の集合が右側の集合の部分集合である場合、True を返し、そうでない場合は False を返します。
前のステップでのスキルの例を見直してみましょう。
skills1 = {"Python", "Data Analysis"}
skills2 = {"Python", "Data Analysis", "Machine Learning", "SQL"}
<= 演算子を使用して、skills1 が skills2 の部分集合であるかどうかをチェックしたいと思います。
VS Code を使用して ~/project ディレクトリ内の subset_check.py ファイルを開きます。ファイルの内容を以下のように変更します。
skills1 = {"Python", "Data Analysis"}
skills2 = {"Python", "Data Analysis", "Machine Learning", "SQL"}
is_subset = skills1 <= skills2
print(is_subset)
ファイルを保存します。
次に、ターミナルで python コマンドを使用してスクリプトを実行します。
python subset_check.py
出力は以下のようになります。
True
これは、skills1 が確かに skills2 の部分集合であることを示しています。
次に、skills1 が skills2 の部分集合ではない別のシナリオを考えてみましょう。
subset_check.py ファイルを以下のように変更します。
skills1 = {"Python", "Data Analysis", "Cloud Computing"}
skills2 = {"Python", "Data Analysis", "Machine Learning", "SQL"}
is_subset = skills1 <= skills2
print(is_subset)
ファイルを保存し、再度実行します。
python subset_check.py
出力は以下のようになります。
False
これは、skills1 には skills2 に含まれていない "Cloud Computing" が含まれているためです。したがって、skills1 は skills2 の部分集合ではありません。
<= 演算子は、2 つの集合が等しい場合にも True を返すことに注意することが重要です。例えば:
set1 = {1, 2, 3}
set2 = {1, 2, 3}
is_subset = set1 <= set2
print(is_subset)
set1 と set2 が等しいため、出力は True になります。set1 が set2 の「真部分集合」(つまり、set1 は set2 の部分集合であるが set2 と等しくない)であるかどうかをチェックしたい場合は、代わりに < 演算子を使用できます。
まとめ
この実験では、Python である集合が別の集合の部分集合であるかどうかをチェックする方法を学びました。まず、部分集合の概念を理解しました。部分集合とは、ある集合のすべての要素が別の集合に含まれている場合のことを指します。
次に、issubset() メソッドを使用して、ある集合が別の集合の部分集合であるかどうかを判断しました。Python スクリプトを作成して実行することで、最初の集合のすべての要素が 2 番目の集合に含まれている場合、issubset() メソッドが True を返し、そうでない場合は False を返すことを確認しました。



