はじめに
この実験では、Python でセット (set) に特定の要素が含まれているかどうかを確認する方法を学びます。これには、セットの所属関係を理解し、in 演算子を使って値がセット内に存在するかどうかを判断することが含まれます。
あなたは、果物のセットを定義する Python スクリプトを作成し、in 演算子を使って "banana" や "grape" などの特定の要素が存在するかどうかを確認します。スクリプトを実行することで、要素がセットのメンバーであるかどうかに基づいて、in 演算子が True または False を返す様子を観察できます。この実験は、Python でセットの所属関係を確認する簡潔で効率的な方法を提供します。
セットの所属関係を調べる
このステップでは、Python で要素がセット (set) のメンバーであるかどうかを確認する方法を学びます。セットの所属関係を確認することは、特定の値がセット内に存在するかどうかを判断する基本的な操作です。Python では、in 演算子を使ってこの確認を簡単に行うことができます。
まず、VS Code エディタを使って ~/project ディレクトリに membership.py という名前の Python スクリプトを作成しましょう。
## Create a set of fruits
fruits = {"apple", "banana", "cherry"}
## Check if "banana" is in the set
print("banana" in fruits)
## Check if "grape" is in the set
print("grape" in fruits)
このスクリプトでは以下のことを行っています。
"apple"、"banana"、"cherry"という 3 つの文字列要素を含むfruitsという名前のセットを定義しています。in演算子を使って、"banana"がfruitsセットのメンバーであるかどうかを確認しています。"banana" in fruitsという式は、"banana"がセット内に実際に存在するため、Trueと評価されます。- 同様に、
"grape"がfruitsセットのメンバーであるかどうかを確認しています。"grape" in fruitsという式は、"grape"がセット内に存在しないため、Falseと評価されます。 print()関数を使って、これらの所属関係の確認結果であるブール値を表示しています。
次に、ターミナルで以下のコマンドを実行して membership.py スクリプトを実行しましょう。
python ~/project/membership.py
以下のような出力が表示されるはずです。
True
False
この出力から、"banana" はセット内に存在し、"grape" は存在しないことが確認できます。
in 演算子は、Python でセットの所属関係を確認する簡潔で効率的な方法を提供します。これは、一意の要素のコレクション内に特定の値が存在するかどうかを素早く判断する必要がある場合に特に便利です。
in 演算子を使用する
前のステップでは、in 演算子を使ってセット (set) の所属関係の基本を学びました。今回は、Python でセットとともに in 演算子を使うより高度な方法を探ってみましょう。
in 演算子は、単一の要素の存在を確認するだけでなく、リストやタプルを反復処理して、各要素がセットのメンバーであるかどうかを確認するためにも使用できます。これは、アイテムのコレクションがあり、その中のどれがセット内に存在するかを素早く判断したい場合に便利です。
まず、VS Code エディタを使って ~/project ディレクトリに in_operator.py という名前の Python スクリプトを作成しましょう。
## Create a set of colors
colors = {"red", "green", "blue"}
## Create a list of items to check
items = ["red", "yellow", "blue", "black"]
## Iterate through the items and check for membership in the set
for item in items:
if item in colors:
print(f"{item} is in the set")
else:
print(f"{item} is not in the set")
このスクリプトでは以下のことを行っています。
"red"、"green"、"blue"という 3 つの文字列要素を含むcolorsという名前のセットを定義しています。"red"、"yellow"、"blue"、"black"という 4 つの文字列要素を含むitemsという名前のリストを作成しています。forループを使って、itemsリスト内の各itemを反復処理しています。- ループ内で、
in演算子を使って、現在のitemがcolorsセットのメンバーであるかどうかを確認しています。 itemがセット内に存在する場合、それがセット内にあることを示すメッセージを出力します。そうでない場合は、セット内にないことを示すメッセージを出力します。
次に、ターミナルで以下のコマンドを実行して in_operator.py スクリプトを実行しましょう。
python ~/project/in_operator.py
以下のような出力が表示されるはずです。
red is in the set
yellow is not in the set
blue is in the set
black is not in the set
この出力は、items リストのどのアイテムが colors セット内に存在するかを示しています。
この例は、in 演算子をループと組み合わせて、セット内の複数の要素の所属関係を効率的に確認する方法を示しています。このテクニックは、アイテムのコレクションを処理し、それらがセット内に存在するかどうかを判断する必要がある場合に非常に有用です。
セットの一意性を理解する
このステップでは、Python のセット (set) が持つ一意性について学びます。セットの特徴の 1 つは、一意な要素のみを含むことができるということです。つまり、セットを作成する際に重複する値は自動的に削除されます。この特性を理解することは、プログラムでセットを効果的に使用するために重要です。
まず、VS Code エディタを使って ~/project ディレクトリに uniqueness.py という名前の Python スクリプトを作成しましょう。
## Create a list with duplicate elements
numbers = [1, 2, 2, 3, 4, 4, 5]
## Convert the list to a set
unique_numbers = set(numbers)
## Print the set
print(unique_numbers)
## Check the length of the original list and the set
print(f"Original list length: {len(numbers)}")
print(f"Set length: {len(unique_numbers)}")
このスクリプトでは以下のことを行っています。
- 重複する要素(例えば、
2と4が 2 回出現)を含むいくつかの整数要素を持つnumbersという名前のリストを定義しています。 set()コンストラクタを使ってnumbersリストをセットに変換しています。これにより、重複する値は自動的に削除され、一意な要素のみを含むセットが生成されます。unique_numbersセットを出力して、一意な要素を確認しています。- 元の
numbersリストとunique_numbersセットの長さを出力して、セットが重複を削除することを示しています。
次に、ターミナルで以下のコマンドを実行して uniqueness.py スクリプトを実行しましょう。
python ~/project/uniqueness.py
以下のような出力が表示されるはずです。
{1, 2, 3, 4, 5}
Original list length: 7
Set length: 5
この出力は、unique_numbers セットが元の numbers リストの一意な要素のみを含んでおり、重複が削除されたためセットの長さがリストの長さよりも短いことを示しています。
セットの一意性の特性は、データのコレクションから重複するエントリを削除したり、データセット内の異なる値を見つけたり、和集合、積集合、差集合などの数学的な集合演算を行ったりするタスクに役立ちます。
まとめ
この実験 (Lab) では、Python のセット (set) 内に特定の要素が存在するかどうかを確認する方法を学びました。核心的な概念は、in 演算子を使って、ある値がセットのメンバーとして存在するかどうかを判断することです。この演算子は、要素が見つかった場合は True を返し、そうでない場合は False を返します。
これを実証するために Python スクリプトを作成し、果物のセットを定義してから in 演算子を使って、「banana」と「grape」の存在を確認しました。スクリプトの出力により、「banana」はセット内に存在し、「grape」は存在しないことが確認されました。これは、セットの所属関係をテストするための in 演算子の基本的な機能を示しています。



