Python で集合が空かどうかをチェックする方法

PythonBeginner
オンラインで実践に進む

はじめに

この実験では、Python で集合が空かどうかをチェックする方法を学びます。これには、空集合の概念を理解し、その空であることを判断するためのさまざまな方法を利用することが含まれます。

この実験では、set() コンストラクタを使用して空集合を作成し、その型を確認する手順を案内します。次に、len() 関数を使用して、集合に含まれる要素の数を調べることで、集合が空かどうかをチェックする方法を探ります。最後に、集合をブール値として評価して空であることをチェックする方法を学びます。

空集合について学ぶ

このステップでは、Python の空集合について学びます。空集合とは、要素を含まない集合のことです。これは集合論における基本的な概念であり、プログラミングでは、最初は空であるが後で要素を含む可能性のあるコレクションを表すためによく使用されます。

Python で空集合を作成するには、引数を指定せずに set() コンストラクタを使用することができます。空集合を作成し、その様子を確認するために出力してみましょう。

  1. LabEx 環境で VS Code エディタを開きます。

  2. ~/project ディレクトリに empty_set.py という名前の新しいファイルを作成します。

    ~/project/empty_set.py
    
  3. empty_set.py ファイルに以下の Python コードを追加します。

    ## Create an empty set
    empty_set = set()
    
    ## Print the empty set
    print(empty_set)
    
    ## Check the type of the variable
    print(type(empty_set))
    

    このコードでは、まず set() を使用して空集合を作成し、それを変数 empty_set に代入します。次に、empty_set の値とその型を type() 関数を使用して出力します。

  4. ターミナルで以下のコマンドを使用して Python スクリプトを実行します。

    python ~/project/empty_set.py
    

    以下の出力が表示されるはずです。

    set()
    <class 'set'>
    

    出力 set() は、空集合が正常に作成されたことを示しています。<class 'set'> は、変数 empty_set が実際に集合オブジェクトであることを確認しています。

    空集合は None や空のリスト [] とは異なります。これは要素が存在しないことを表す特定の型のコレクションです。空集合を作成して使用する方法を理解することは、要素を追加する前にコレクションを初期化したり、特定の操作を実行する前に集合が空かどうかをチェックしたりするなど、さまざまなプログラミングタスクにおいて重要です。

len() を使ってチェックする

このステップでは、len() 関数を使って集合が空かどうかをチェックする方法を学びます。len() 関数は、集合内の要素の数を返します。空集合の場合、この関数は 0 を返します。これは、集合に要素が含まれているかどうかをプログラム的に判断する便利な方法です。

前のステップを踏まえて、empty_set.py ファイルを修正して len() 関数を追加しましょう。

  1. VS Code エディタで empty_set.py ファイルを開きます。このファイルは ~/project ディレクトリにあるはずです。

  2. empty_set.py ファイルを修正して、以下の Python コードを追加します。

    ## Create an empty set
    empty_set = set()
    
    ## Print the empty set
    print(empty_set)
    
    ## Check the type of the variable
    print(type(empty_set))
    
    ## Check the length of the empty set
    print(len(empty_set))
    

    このコードでは、len() 関数を使って empty_set 内の要素の数を調べ、その結果を出力する行を追加しています。

  3. ターミナルで以下のコマンドを使って Python スクリプトを実行します。

    python ~/project/empty_set.py
    

    以下の出力が表示されるはずです。

    set()
    <class 'set'>
    0
    

    出力の 0 は、len() 関数が空集合に要素がないことを正しく報告していることを確認しています。

    len() を使って、空でない集合のサイズもチェックできます。たとえば、集合に要素を追加すると、len() は追加された要素の数を返します。このため、len() は Python で集合を扱う際の汎用的なツールとなっています。

ブール値として評価する

このステップでは、Python で空集合がブール値としてどのように評価されるかを学びます。Python では、特定の値は「真値(truthy)」(ブールコンテキストで True と評価される)と見なされ、他の値は「偽値(falsy)」(ブールコンテキストで False と評価される)と見なされます。空集合は「偽値」と見なされます。これは、空集合を条件文(if 文など)で使用すると、False として扱われることを意味します。

この動作を実証するために、empty_set.py ファイルを修正しましょう。

  1. VS Code エディタで empty_set.py ファイルを開きます。このファイルは ~/project ディレクトリにあるはずです。

  2. empty_set.py ファイルを修正して、以下の Python コードを追加します。

    ## Create an empty set
    empty_set = set()
    
    ## Print the empty set
    print(empty_set)
    
    ## Check the type of the variable
    print(type(empty_set))
    
    ## Check the length of the empty set
    print(len(empty_set))
    
    ## Evaluate the empty set as a boolean
    if empty_set:
        print("The set is not empty")
    else:
        print("The set is empty")
    

    このコードでは、empty_set のブール値をチェックする if 文を追加しています。empty_set が「真値」(空でない)であれば、「The set is not empty」と出力されます。そうでなければ、「The set is empty」と出力されます。

  3. ターミナルで以下のコマンドを使用して Python スクリプトを実行します。

    python ~/project/empty_set.py
    

    以下の出力が表示されるはずです。

    set()
    <class 'set'>
    0
    The set is empty
    

    出力の「The set is empty」は、空集合がブールコンテキストで False と評価されることを確認しています。

    この動作は、簡潔で読みやすいコードを書くのに便利です。たとえば、要素が存在することを必要とする操作を実行する前に、集合に要素があるかどうかをチェックすることができます。空集合がブール値としてどのように評価されるかを理解することは、Python で集合を扱う上で重要な側面です。

まとめ

この実験では、Python の空集合について学び、引数を指定せずに set() コンストラクタを使用して空集合を作成する方法を学びました。また、type() 関数を使用して変数が実際に集合オブジェクトであることを確認する方法も学びました。

さらに、len() 関数を使用して集合に含まれる要素の数をチェックし、集合が空かどうかを判断する方法の学習を始めました。