Pythonの集合でIntersection(共通部分)の処理を行う方法

スポンサーリンク

Python Set Intersectionは、基本的にセット間で共通する要素を見つけて返します。

構文は以下の通りです。

set1.intersection(set2, set3, ... setN)

set1.intersection(set2) は set1∩set2 と等価です。

引数 引数として1つ以上の集合を受け入れる。

戻り値 すべての集合に共通な要素を含む集合を出力として返す。

スポンサーリンク

Pythonで集合の交わりを実現する方法

PythonのSet Intersectionを実現する方法は、以下のいずれかを使用することができます

  • intersection() メソッドを使用する
  • Pythonのビット演算子”& “を使用します。
  • intersection_update() メソッドを使用します。
  • &=” 演算子によるものです。

Python Set Intersection using intersection() メソッド

  • intersection() メソッドは、文字列、リスト、タプルなど、1つ以上の反復記号を引数として受け取ります。
  • このメソッドは、渡された反復子間の共通要素を比較し、見つけます。
  • 最後に,反復記号に共通する要素を含む新しいセットを出力として生成します.

注:引数として set 以外の反復記号が渡された場合,まず反復記号オブジェクトが set オブジェクトに変換され,それに対して交差が実行される.

例えば、以下の様になります。

set1 = {10, 20, 30}
set2 = {30, 3, 9}
 
 
output = set1.intersection(set2)
 
print(output)

結果は、以下の通りになります。

{30}

Pythonのビット演算子”& “を使った集合の交点

  • Pythonの”& “演算子は、2つ以上の集合の要素の交差点も返します。
  • 演算子とintersection()メソッドの唯一の違いは、&演算子はセットオブジェクトにのみ作用し、intersectionメソッドはリストやセットなどの反復可能なオブジェクトに作用することです。

例えば、以下の様になります。

set1 = {"Safa", "Aman", "Pooja", "Divya"}
 
 
set2 = {"Safa", "Aryan", "Nisha", "Raghav", "Divya"}
 
 
Result = set1 & set2
 
 
print('Set 1: ',set1)
print('Set 2: ',set2)
print('Set Intersection: ',Result)

結果は以下の通りです。

Set 1:  {'Safa', 'Pooja', 'Divya', 'Aman'}
Set 2:  {'Nisha', 'Aryan', 'Raghav', 'Safa', 'Divya'}
Set Intersection:  {'Safa', 'Divya'}

Python Set Intersection using intersection_update() メソッドを使用します。

intersection_update() メソッドは、基本的に反復子間の共通要素を返し、操作が行われたのと同じセット/反復子オブジェクトを更新します。

注意: これは、出力として新しいセットを作成するわけではありません。

その代わり、同じ入力セットを交差操作の結果で更新します。

以下の例を参照して、理解を深めてください。

例えば、以下の様になります。

set1 = {"Safa", "Aman", "Pooja", "Divya"}
 
 
set2 = {"Safa", "Aryan", "Nisha", "Raghav", "Divya"}
 
print("Set1 before intersection operation: ", set1)
set1.intersection_update(set2)
 
 
print('Set Intersection of set1 and set2: ',set1)
print('Updated Set1: ',set1)

結果は、以下の通りになります。

Set1 before intersection operation:  {'Aman', 'Pooja', 'Divya', 'Safa'}
Set Intersection of set1 and set2:  {'Divya', 'Safa'}
Updated Set1:  {'Divya', 'Safa'}

Python “&=” 演算子による集合の交点

&=”演算子は、セットオブジェクト間の交差点も返します。

注意:”&=”演算子はセットオブジェクトに対してのみ実行・操作されます。

リストや文字列など、他の反復可能なオブジェクトはサポートしていません。

例えば、以下の様になります。

set1 = {"Safa", "Aman", "Pooja", "Divya"}
 
 
set2 = {"Safa", "Aryan", "Nisha", "Raghav", "Divya"}
 
print("Set1 before intersection operation: ",set1)
 
set1 &= set2
 
print('Set Intersection of set1 and set2: ',set1)
 
print("Updated Set1: ", set1)

結果は以下の通りです。

Set1 before intersection operation:  {'Divya', 'Safa', 'Pooja', 'Aman'}
Set Intersection of set1 and set2:  {'Divya', 'Safa'}
Updated Set1:  {'Divya', 'Safa'}

まとめ

このように、今回はPythonの集合積分について、可能な方法を検討し、実装してみました。

タイトルとURLをコピーしました