Pythonのunion()関数とは?セットの和集合を求める方法を徹底解説
はじめに
本記事では、Pythonのset()型に対して実行できる操作の一つであるunion()関数について詳しく解説します。和集合(Union)とは、入力された複数の集合に含まれるすべての要素を集めた集合のうち、重複する要素を取り除いた最小の集合のことを指します。
基本構文
<set_1>.union(<set_2>, <set_3>, ...)
戻り値: set型のオブジェクトが返されます。
記号: 数学や確率論においては、関数名の頭文字に由来する「U」という記号で和集合を表します。
使用例:2つおよび3つのセットの和集合
まずは、基本的な使い方をサンプルコードで確認しましょう。
# Python 3.x set型のunion()関数
set_1 = {'a', 'b'}
set_2 = {'b', 'c', 'd'}
set_3 = {'b', 'c', 'd', 'e', 'f', 'g'}
# 2つのセットに対する和集合の計算
print("set_1 U set_2 : ", set_1.union(set_2))
print("set_3 U set_2 : ", set_2.union(set_3))
print("set_1 U set_3 : ", set_1.union(set_3))
# 3つのセットに対する和集合の計算
print("set_1 U set_2 U set_3 :", set_1.union(set_2, set_3))
出力結果
set_1 U set_2 : {'a', 'd', 'c', 'b'}
set_3 U set_2 : {'e', 'c', 'd', 'b', 'f', 'g'}
set_1 U set_3 : {'e', 'c', 'd', 'b', 'a', 'f', 'g'}
set_1 U set_2 U set_3 : {'e', 'c', 'd', 'b', 'a', 'f', 'g'}
この出力結果から分かるように、和集合を生成する際には重複した要素は自動的に除外されます。これはset型が持つ「要素の一意性」によるものです。
代替構文:「|」演算子を使う方法
Pythonでは、union()メソッドを使わずとも、「|」(パイプ)演算子によって同じ和集合の操作を実現できます。
# Python 3.x 「|」演算子による和集合
set_1 = {'a', 'b'}
set_2 = {'b', 'c', 'd'}
set_3 = {'b', 'c', 'd', 'e', 'f', 'g'}
# 2つのセットに対する和集合の計算
print("set_1 U set_2 : ", set_1 | set_2)
print("set_3 U set_2 : ", set_2 | set_3)
print("set_1 U set_3 : ", set_1 | set_3)
# 3つのセットに対する和集合の計算
print("set_1 U set_2 U set_3 :", set_1 | set_2 | set_3)
上記コードの出力結果は、先ほどのunion()メソッドを使用した例と完全に同一です。つまり、「|」演算子はunion()と同じ機能を持っているため、状況に応じて読みやすい方を選択できます。
リストに対して和集合を求める方法
union演算はset型専用の機能ですが、明示的な型変換(キャスト)を行うことで、リストにも適用できます。
構文
list(set(lst_1) | set(lst_2))
このように、まずリストをset()で集合に変換し、和集合を求めた後に再びlist()でリストへ戻すことで、重複要素を除去したリストを簡単に作成できます。
まとめ
本記事では、Pythonのunion()関数の基本的な使い方と動作原理について学びました。主なポイントは以下の通りです。
union()メソッドは複数のセットの和集合を返す。- 重複する要素は自動的に除外される。
- 「|」演算子でも同じ結果が得られる。
- 型変換を組み合わせれば、リストにも和集合の考え方を応用できる。
セット操作はデータの前処理や重複排除など、実務でも頻繁に活用されるテクニックです。ぜひ実際のコードで試してみてください。
-
Pythonのissubset()関数とは?部分集合の判定方法を実例付きで解説
本記事では、Python標準ライブラリに用意されているissubset()関数の仕組みと使い方について詳しく解説します。 issubset()メソッドは、あるセット(集合)のすべての要素が、引数として渡した別のセットにも含まれている場合にブール値のTrueを返し、1つでも含まれていない要素があればFalseを返します。 下の図では、BはAの部分集合です。もしAとBが同一のセットであれば、両者は互いに部分集合の関係にあるといえます。つまり、両方のセットがまったく同じ要素を持っているということを意味します。 構文 <set 1>.issubset(<set 2>) 戻り値
-
Pythonのintersection()関数とは?集合の共通要素(積集合)を求める方法
この記事では、Pythonのセット(集合)に対して実行できるintersection()関数について詳しく解説します。数学における「積集合(インターセクション)」とは、2つの集合から共通する要素を見つけ出すことを指します。構文<セット名>.intersection(<セットa1>, <セットa2>, …)戻り値引数として渡されたすべての集合に共通する要素(積集合)が、新しいセットとして返されます。使用例set_1 = {t,u,t,o,r,i,a,l} set_2 = {p,o,i,n,t} set_3 = {t,u,t} # 2つの集合の積集合 print