Python で差集合を取得する
Muhammad Waiz Khan
2023年10月10日
-
Python で集合の差分を見つけるには
set.symmetric_difference()
メソッドを使用する -
Python の
for
ループを使ってセットの差分を求める -
XOR
演算子を用いた Python でセットの差分を見つける
このチュートリアルでは、Python で 2つの集合の違いを見つけるための様々な方法を説明します。差分とは、2つの集合の間で共通していない要素を意味します。
例えば:
set1 = set([1, 2, 3, 4, 5, 6])
set2 = set([2, 3, 6, 8])
この 2つの集合の差は 1,4,5,8
であるべきです。
Python で集合の差分を見つけるには set.symmetric_difference()
メソッドを使用する
set.symmetric_difference()
メソッドは別の集合を入力として受け取り、その差を返します。以下の例では、set.symmetric_difference()
を用いて両方の集合に共通しない要素を取得し、必要な差集合を取得する方法を説明します。
set1 = set([1, 2, 3, 4, 5, 6])
set2 = set([2, 3, 6, 8])
diff_set = set1.symmetric_difference(set2)
print(diff_set)
出力:
{1, 4, 5, 8}
Python の for
ループを使ってセットの差分を求める
2つの集合の違いを見つけるには、for
ループを使って両方の集合を反復処理し、もう一方の集合に同じ要素があるかどうかをチェックして、それらが一意であればそれをリストに追加します。そして、両方の集合に存在する要素は無視されます。
コード例:
set1 = set([1, 2, 3, 4, 5, 6])
set2 = set([2, 3, 6, 8])
temp1 = [x for x in set1 if x not in set2]
temp2 = [x for x in set2 if x not in set1]
diff_set = set(temp1 + temp2)
print(diff_set)
出力:
{8, 1, 4, 5}
XOR
演算子を用いた Python でセットの差分を見つける
セットの違いを見つける簡単な方法は、セットに XOR
演算を適用することで、同じ要素を削除し、必要に応じて両方のセットで同じではない要素のみを返します。
これをコードで実装するには、2つの集合の間に ^
演算子を使って目的の集合の差分を得ることができます。
set1 = set([1, 2, 3, 4, 5, 6])
set2 = set([2, 3, 6, 8])
diff_set = set(set1) ^ set(set2)
print(diff_set)
出力:
{1, 4, 5, 8}