1. ホーム
  2. python

[解決済み] pythonのset.intersectionの反対?

2023-07-26 23:21:10

質問

Pythonでは a.intersection(b) を使って、両方の集合に共通する項目を見つけることができます。

を行う方法はありますか? disjoint の逆バージョンを行う方法はありますか?両者に共通しない項目 ab のユニークアイテムです。 a のユニークな項目と結合され b ?

どのように解決するのですか?

あなたが探しているのは 対称的な差 を探しています。これは、集合aまたは集合bにのみ現れ、両方には現れないすべての要素です。

a.symmetric_difference(b)

からの set.symmetric_difference() メソッドドキュメント :

のどちらかの要素を持つ新しいセットを返します。 その他の のどちらかであって、両方ではない要素を持つ新しいセットを返す。

を使用することができます。 ^ 演算子も使えます。 ab はセットです。

a ^ b

一方 set.symmetric_difference() は任意のイテラブルを その他の の引数を取ります。

と同等の出力となります。 (a | b) - (a & b) と同じで、両方の集合の和から両方の集合の交を引いたものです。