関数の機能:
集合の差(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の使い方の例