データ構造 中級

36. セット(set)と集合演算

セット(set)とは

セットは、中学・高校の数学で習った「集合」をそのままプログラムで扱えるようにしたデータ構造です。いちばんの特徴は、同じ値を重複して持てないこと。リストに重複データが紛れ込んでいて困ったとき、set()に変換するだけで一気に重複を取り除けるので便利です。中括弧 {} で作成し、数学の集合と同じように和集合・積集合・差集合といった演算も行えます。

  • |:和集合(どちらか一方にでも含まれる要素)
  • &:積集合(両方に共通して含まれる要素)
  • -:差集合(片方にしかない要素)

サンプルコード

a = {1, 2, 3}
b = {2, 3, 4}
print(a | b)
print(a & b)
print(a - b)
a | bは和集合で{1, 2, 3, 4}、a & bは積集合で{2, 3}、a - bは差集合で{1}という結果になります。集合演算のイメージがつかめると、データの重複除去や比較がぐっと楽になります。

📝 練習問題

練習問題:{1, 2, 2, 3, 3, 3}というリストをset()に変換し、重複が除去されることを確認してください。