Python でセットから要素を削除する

Muhammad Maisam Abbas 2023年1月30日
  1. Python の remove() 関数を使用してセットから単一要素を削除する
  2. Python の discard() 関数を使用してセットから単一要素を削除する
  3. Python の - 演算子を使用してセットから複数の要素を削除する
  4. Python の difference() 関数を使用してセットから複数の要素を削除する
  5. Python の difference_update() 関数を使用してセットから複数の要素を削除する
Python でセットから要素を削除する

このチュートリアルでは、Python でセットから要素を削除するさまざまな方法について説明します。

Python の remove() 関数を使用してセットから単一要素を削除する

Python の set.remove() 関数は、呼び出し元のセットから特定の要素を削除するためにセットとともに使用されます。remove() 関数は、削除する要素を引数として受け取り、指定された要素を呼び出し元のセットから削除します。要素が呼び出しセット内に見つからない場合、remove() 関数は KeyError 例外を発生させます。次のコード例を参照してください。

set1 = {1, 2, 3, 4, 5, 6, 7, 8, 9, 0}
set1.remove(5)
print(set1)

出力:

{0, 1, 2, 3, 4, 6, 7, 8, 9}

上記のコードの remove(5) 関数を使用して、set1 から要素 5 を削除しました。指定された値がコーリングセットに存在しないシナリオを、以下のコーディング例に示します。

set1 = {1, 2, 3, 4, 5, 6, 7, 8, 9, 0}
set1.remove(51)
print(set1)

出力:

KeyError                                  Traceback (most recent call last)
<ipython-input-1-841e997b50f3> in <module>()
      1 #remove()
      2 set1 = {1,2,3,4,5,6,7,8,9,0}
----> 3 set1.remove(51)
      4 print(set1)

KeyError: 51

上記のコードの set1 から値 51 を削除しようとしました。set1 には値 51 が存在しないため、remove() 関数は KeyError を発生させます。

Python の discard() 関数を使用してセットから単一要素を削除する

discard() 関数remove() 関数と非常によく似ています。Python のセットから 1つの要素のみを削除するためにも使用できます。discard() 関数は、削除する要素を入力パラメーターとして受け取り、その特定のセットに値が存在する場合は、呼び出し元のセットから削除します。唯一の違いは、値が呼び出しセットに存在しない場合、discard() 関数は KeyError を発生させないことです。次のコードスニペットは、discard() 関数を使用してセットから単一の要素を削除する方法を示しています。

set1 = {1, 2, 3, 4, 5, 6, 7, 8, 9, 0}
set1.discard(5)
print(set1)

出力:

{0, 1, 2, 3, 4, 6, 7, 8, 9}

上記のコードの discard() 関数を使用して、set1 から値 5 を削除しました。上で説明したように、set1 に存在しない値を discard() 関数に渡そうとすると、コードは正常に実行され、インタープリターは例外を発生させません。この現象は、次のコーディング例で示されています。

set1 = {1, 2, 3, 4, 5, 6, 7, 8, 9, 0}
set1.discard(51)
print(set1)

出力:

{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}

上記のコードの discard() 関数を使用して、set1 から 51 を削除しようとしました。指定された値が set1 に存在せず、set1 から要素が削除されていないため、コードは正常に実行されます。

Python の - 演算子を使用してセットから複数の要素を削除する

- 演算子を使用して、Python で差の設定操作を実行できます。- 演算子は、左側のセットから右側のセットのすべての要素を削除し、別のセットの形式で結果を返します。このメソッドは、左側のセットの要素が右側のセットに存在しない場合に例外を発生させず、結果として右側のセットを返します。次のコードスニペットは、- 演算子を使用してセットから複数の要素を削除する方法を示しています。

set1 = {1, 2, 3, 4, 5, 6, 7, 8, 9, 0}
set2 = {2, 4, 6, 8, 0}
set1 = set1 - set2
print(set1)

出力:

{1, 3, 5, 7, 9}

- 演算子を使用して set1 から set2 のすべての要素を削除し、結果のセットを上記のコードの set3 に格納しました。次のコード例は、set1set2 の両方が一意の値を持つシナリオを示しています。

set1 = {1, 3, 5, 7, 9}
set2 = {2, 4, 6, 8, 0}
set1 = set1 - set2
print(set1)

出力:

{1, 3, 5, 7, 9}

前に説明したように、右側のセットのすべての要素が左側のセットに存在しない場合、コードは正常に実行され、- 演算子は左側のセットを結果のセットとして返します。

Python の difference() 関数を使用してセットから複数の要素を削除する

セットの違いでは、あるセットのすべての要素を別のセットから削除します。Python では、set.difference() 関数を使用してセット差分演算を実行します。この difference() 関数の動作は、- 演算子と同じです。削除するセットを入力パラメーターとして受け取り、そのすべての要素を呼び出し元のセットから削除し、結果を別のセットの形式で返します。次のコードスニペットを参照してください。

set1 = {1, 2, 3, 4, 5, 6, 7, 8, 9, 0}
set2 = {2, 4, 6, 8, 0}
set1 = set1.difference(set2)
print(set1)

出力:

{1, 3, 5, 7, 9}

difference() 関数を使用して set1 から set2 のすべての要素を削除し、上記のコードの set3 内に結果を保存しました。入力セットのすべての値が呼び出しセットに存在しない difference() 関数のシナリオは、- 演算子と同じです。

Python の difference_update() 関数を使用してセットから複数の要素を削除する

前の 2つのセクションでは、セットから複数の要素を削除する方法について説明しました。どちらのアプローチにも、結果を保存する必要がある 3 番目のセットが含まれます。このアプローチでは、結果を保存するための新しいセットは必要ありません。呼び出しセットを更新し、結果を呼び出しセット内に保存します。difference_update() 関数は、要素を呼び出し側セットから削除する必要があるセットを入力パラメーターとして受け取り、すべての共通要素を呼び出し側セットから削除します。

set1 = {1, 2, 3, 4, 5, 6, 7, 8, 9, 0}
set2 = {2, 4, 6, 8, 0}
set1.difference_update(set2)
print(set1)

出力:

{1, 3, 5, 7, 9}

上記のコードで difference_update() 関数を使用して、set1 から set2 のすべての要素を削除し、結果のセットで set1 を更新しました。前の 2つの方法とは異なり、結果を保存するためだけに新しいセットを作成する必要はありませんでした。代わりに、結果は自動的に set1 に挿入されました。

difference_update() 関数は、Python の -= 演算子と同等です。

Muhammad Maisam Abbas avatar Muhammad Maisam Abbas avatar

Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.

LinkedIn

関連記事 - Python Set