関数set.difference(_update)の使い方の例

関数の機能:
  集合の差(setAからsetBの全要素を削除した集合)を求める

    setA.difference(setB)
    setA.difference_update(setB)
  
  difference : 
    集合の差を返却
    (setAは変更されない)
  difference_update : 
    関数を呼び出した集合が集合の差に変更される
    (setAが変更される, 返却値はNone)

例1 : 2つの集合の差

>>> set1 = {'A', 'B', 'C'}
>>> set2 = {'B', 'D'}
>>> set1.difference(set2)
{'A', 'C'}
この例では、set1からset2に含まれる要素を削除した集合が関数から返却されています。
この例のイメージを下図に示します。集合の差は図中の青い部分で、この部分の集合が関数から返却されます。
集合の差の説明
なお、関数の呼び出し後にset1の内容を確認すると更新されていないことがわかります。
>>> set1
{'A', 'C', 'B'}
この関数を使う代わりに - 演算子を使用して下記のように記述することもできます。
>>> set1 - set2
{'A', 'C'}
difference_updateを使用した場合は下記のようになります。
>>> set1.difference_update(set2)
>>> set1
{'A', 'C'}

例2 : 3つの集合の差

>>> set1 = {'A', 'B', 'C'}
>>> set2 = {'B', 'D'}
>>> set3 = {'C', 'E'}
>>> set1.difference(set2, set3)
{'A'}
この例では、set1からset2とset3に含まれる要素を削除した集合が関数から返却されています。
- の演算子を使用して下記のように記述することもできます。
>>> set1 - set2 - set3
{'A'}

関連項目

関数set.intersection(_update)の使い方の例
関数set.symmetric_difference(_update)の使い方の例
関数set.union, set.updateの使い方の例