Python でリストが一意の要素のみを含むかどうかをチェックする方法

PythonPythonBeginner
今すぐ練習

💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください

はじめに

この実験では、Python でリストが一意の要素のみを含んでいるかどうかを確認する方法を学びます。この実験では、Python の集合 (set) を使用して、リスト内の一意の要素を定義し識別することに焦点を当てています。

この実験では、集合の動作を実証する Python スクリプト unique_elements.py を作成する手順を案内します。重複する要素を含むリストを作成し、それを集合に変換して重複を削除し、元のリストと一意の要素からなる結果の集合の両方を出力します。元のリストと集合を比較することで、集合を使用して一意の要素を識別し抽出する方法を理解できます。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL python(("Python")) -.-> python/DataStructuresGroup(["Data Structures"]) python(("Python")) -.-> python/FunctionsGroup(["Functions"]) python(("Python")) -.-> python/PythonStandardLibraryGroup(["Python Standard Library"]) python/DataStructuresGroup -.-> python/sets("Sets") python/FunctionsGroup -.-> python/build_in_functions("Build-in Functions") python/PythonStandardLibraryGroup -.-> python/data_collections("Data Collections") subgraph Lab Skills python/sets -.-> lab-559529{{"Python でリストが一意の要素のみを含むかどうかをチェックする方法"}} python/build_in_functions -.-> lab-559529{{"Python でリストが一意の要素のみを含むかどうかをチェックする方法"}} python/data_collections -.-> lab-559529{{"Python でリストが一意の要素のみを含むかどうかをチェックする方法"}} end

一意の要素を定義する

このステップでは、Python の集合 (set) を使用して一意の要素を定義する方法を学びます。集合は Python の基本的なデータ構造で、一意で順序付けされていない要素のみを格納します。つまり、重複する要素を集合に追加しようとすると、その要素は単に無視されます。集合を理解することは、リストから重複を削除したり、コレクション内に特定の要素が存在するかどうかを確認したりするようなタスクにおいて重要です。

まずは、集合の動作を実証する Python スクリプトを作成しましょう。

  1. WebIDE を開きます。左側にファイルエクスプローラー、右側にテキストエディターが表示されるはずです。

  2. ファイルエクスプローラーで、プロジェクトディレクトリ /home/labex/project に移動します。

  3. ファイルエクスプローラー内で右クリックし、「New File」を選択して、unique_elements.py という名前の新しいファイルを作成します。

  4. エディターで unique_elements.py を開き、以下のコードを追加します。

## Create a list with duplicate elements
my_list = [1, 2, 2, 3, 4, 4, 5]

## Convert the list to a set to remove duplicates
my_set = set(my_list)

## Print the original list and the set
print("Original List:", my_list)
print("Set of Unique Elements:", my_set)

このスクリプトでは、まず重複する要素を含む my_list という名前のリストを作成します。次に、このリストを my_set という名前の集合に変換します。set() 関数は自動的に重複する要素を削除し、一意の値のみを残します。最後に、スクリプトは元のリストと一意の要素からなる集合の両方を出力します。

  1. unique_elements.py ファイルを保存します。

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

python unique_elements.py

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

Original List: [1, 2, 2, 3, 4, 4, 5]
Set of Unique Elements: {1, 2, 3, 4, 5}

ご覧の通り、集合 my_set には元のリスト my_list の一意の要素のみが含まれています。集合は順序付けされていないため、集合内の要素の順序は元のリストと異なる場合があります。

この例は、Python で一意の要素を定義するための集合の基本的な使い方を示しています。次のステップでは、集合を使用したより高度な操作を探っていきます。

len() と len(set()) を比較する

このステップでは、len() 関数を使用してリスト内の要素の数を求め、それを同じリストから作成した集合内の一意の要素の数と比較する方法を学びます。これは、リスト内の重複要素の数を特定するための有用な手法です。

len() 関数は、オブジェクト内のアイテムの数を返します。リストに適用すると、重複を含む要素の総数を返します。集合に適用すると、一意の要素の数を返します。

前のステップで作成した Python スクリプトを変更して、元のリストと一意の要素の集合の長さを比較しましょう。

  1. 前のステップで作成した unique_elements.py ファイルを WebIDE で開きます。このファイルは /home/labex/project にあるはずです。

  2. unique_elements.py ファイルを変更して、以下のコードを追加します。

## Create a list with duplicate elements
my_list = [1, 2, 2, 3, 4, 4, 5]

## Convert the list to a set to remove duplicates
my_set = set(my_list)

## Print the length of the original list and the set
print("Length of Original List:", len(my_list))
print("Length of Set of Unique Elements:", len(my_set))

## Calculate the number of duplicate elements
num_duplicates = len(my_list) - len(my_set)
print("Number of Duplicate Elements:", num_duplicates)

このスクリプトでは、元のリストと一意の要素の集合の長さを計算して出力するコードを追加しています。その後、リストの長さから集合の長さを引くことで、重複要素の数を計算しています。

  1. unique_elements.py ファイルを保存します。

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

python unique_elements.py

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

Length of Original List: 7
Length of Set of Unique Elements: 5
Number of Duplicate Elements: 2

この出力から、元のリストには 7 つの要素があり、一意の要素の集合には 5 つの要素があることがわかります。これらの長さの差 (7 - 5 = 2) は、元のリストに 2 つの重複要素があることを示しています。

この例は、len() 関数を集合と組み合わせて使用して、リスト内の重複要素を特定し数量化する方法を示しています。

set() 変換を使ったチェック

このステップでは、リストを集合に変換して長さを比較することで、リストが一意の要素のみを含むかどうかをチェックする方法を学びます。これは、リスト内に重複要素があるかどうかを判断する簡潔で効率的な方法です。

核心的な考え方は、リストに重複要素が含まれている場合、それを集合に変換すると要素の数が減少するということです。なぜなら、集合は一意の値のみを格納するからです。元のリストの長さとそれから作成された集合の長さが同じであれば、そのリストは一意の要素のみを含んでいます。

前のステップで作成した Python スクリプトを変更して、集合変換を使ってリストが一意の要素のみを含むかどうかをチェックしましょう。

  1. 前のステップで作成した unique_elements.py ファイルを WebIDE で開きます。このファイルは /home/labex/project にあるはずです。

  2. unique_elements.py ファイルを変更して、以下のコードを追加します。

## Create a list with or without duplicate elements
my_list = [1, 2, 3, 4, 5]  ## Example with unique elements
## my_list = [1, 2, 2, 3, 4, 5]  ## Example with duplicate elements

## Convert the list to a set
my_set = set(my_list)

## Check if the list contains only unique elements
if len(my_list) == len(my_set):
    print("The list contains only unique elements.")
else:
    print("The list contains duplicate elements.")

このスクリプトでは、まず my_list というリストを定義します。対応する行をコメントアウトまたはコメント解除することで、一意の要素を持つ例または重複要素を持つ例を使うことができます。次に、リストを集合に変換し、リストと集合の長さを比較します。長さが等しい場合、リストが一意の要素のみを含んでいることを示すメッセージを出力します。そうでない場合、リストに重複要素が含まれていることを示すメッセージを出力します。

  1. unique_elements.py ファイルを保存します。

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

python unique_elements.py

一意の要素を持つ例 (my_list = [1, 2, 3, 4, 5]) を使用した場合、以下の出力が表示されるはずです。

The list contains only unique elements.

重複要素を持つ例 (my_list = [1, 2, 2, 3, 4, 5]) を使用した場合、以下の出力が表示されるはずです。

The list contains duplicate elements.

この例は、集合変換を使ってリストが一意の要素のみを含むかどうかを効率的にチェックする方法を示しています。この手法は、データ処理や検証タスクでよく使われます。

まとめ

この実験では、Python の集合 (set) を使用して一意の要素を定義する方法を学びました。この実験では、unique_elements.py という名前の Python スクリプトを作成し、集合の動作を実証しました。重複要素を含むリストを作成し、set() 関数を使用してそれを集合に変換しました。この関数は自動的に重複要素を削除し、一意の値のみを残します。

その後、スクリプトは元のリストと一意の要素の集合の両方を出力し、集合を使用してリストから一意の値を抽出する方法を示しました。集合は順序付けられていないため、集合内の要素の順序は元のリストと異なる場合があることがわかりました。