カテゴリ: Python 更新日: 2025/08/30

Pythonでセット同士の演算(和集合・差集合・積集合)を行う方法 初心者向け完全ガイド

Pythonでセット同士の演算(和集合・差集合・積集合)を行う方法
Pythonでセット同士の演算(和集合・差集合・積集合)を行う方法

先生と生徒の会話形式で理解しよう

生徒

「Pythonのセットって重複を消せるのは知ってるんですが、セット同士を組み合わせたり、共通部分だけを取り出す方法はありますか?」

先生

「はい、それがまさにセット演算です。和集合・差集合・積集合という操作を使えば、データを簡単に整理したり比較できます。」

生徒

「和集合とか積集合って数学で聞いたことがあるような…」

先生

「そうです。中学校や高校の数学で習った集合の概念が、そのままPythonでも使えます。では、具体的な使い方を見ていきましょう。」

-

1. Pythonのセット演算とは?

1. Pythonのセット演算とは?
1. Pythonのセット演算とは?

Python(パイソン)のセットは、数学でいう集合と同じように、複数の要素を管理し、重複を自動で削除します。そして、複数のセット同士で「和集合」「差集合」「積集合」といった演算ができます。

これらの操作を覚えると、例えば「AさんとBさんが持っている本の一覧」「Aさんだけが持っているもの」「共通で持っているもの」などを簡単に調べられます。

2. 和集合(union)

2. 和集合(union)
2. 和集合(union)

和集合とは、2つのセットのすべての要素を合わせた集合です。重複する要素は1つにまとめられます。記号は|(パイプ)またはunion()メソッドを使います。


a = {"りんご", "みかん", "バナナ"}
b = {"バナナ", "もも", "パイナップル"}
print(a | b)
print(a.union(b))

{'パイナップル', 'もも', 'みかん', 'バナナ', 'りんご'}
{'パイナップル', 'もも', 'みかん', 'バナナ', 'りんご'}

3. 差集合(difference)

3. 差集合(difference)
3. 差集合(difference)

差集合とは、片方のセットにあって、もう片方にはない要素を取り出す演算です。記号は-(マイナス)またはdifference()メソッドを使います。


a = {"りんご", "みかん", "バナナ"}
b = {"バナナ", "もも", "パイナップル"}
print(a - b)
print(b - a)

{'みかん', 'りんご'}
{'パイナップル', 'もも'}

4. 積集合(intersection)

4. 積集合(intersection)
4. 積集合(intersection)

積集合とは、両方のセットに共通して含まれる要素だけを取り出す演算です。記号は&(アンパサンド)またはintersection()メソッドを使います。


a = {"りんご", "みかん", "バナナ"}
b = {"バナナ", "もも", "パイナップル"}
print(a & b)
print(a.intersection(b))

{'バナナ'}
{'バナナ'}
-

5. 対称差集合(symmetric_difference)

5. 対称差集合(symmetric_difference)
5. 対称差集合(symmetric_difference)

対称差集合とは、どちらか片方にだけ含まれる要素を取り出す演算です。両方にある要素は除かれます。記号は^(キャレット)またはsymmetric_difference()を使います。


a = {"りんご", "みかん", "バナナ"}
b = {"バナナ", "もも", "パイナップル"}
print(a ^ b)

{'もも', 'りんご', 'パイナップル', 'みかん'}

6. 応用例:会員データの比較

6. 応用例:会員データの比較
6. 応用例:会員データの比較

例えば、オンラインサービスの会員データで「無料会員と有料会員の両方にいるユーザー」「無料会員だけのユーザー」「有料会員だけのユーザー」を調べる場合に集合演算が役立ちます。


free_users = {"佐藤", "鈴木", "高橋", "田中"}
paid_users = {"田中", "伊藤", "佐藤"}

# 共通ユーザー
print(free_users & paid_users)
# 無料会員だけ
print(free_users - paid_users)
# 有料会員だけ
print(paid_users - free_users)

{'佐藤', '田中'}
{'高橋', '鈴木'}
{'伊藤'}

7. 初心者が覚えるべきポイント

7. 初心者が覚えるべきポイント
7. 初心者が覚えるべきポイント
  • 和集合:すべての要素をまとめる(| または union()
  • 差集合:片方だけにある要素を取り出す(- または difference()
  • 積集合:両方に共通する要素だけ(& または intersection()
  • 対称差集合:どちらか一方だけにある要素(^ または symmetric_difference()

これらを使いこなすと、データの比較や整理が非常に簡単になります。特に大規模なデータ処理や検索機能の実装にも役立ちます。

コメント
コメント投稿は、ログインしてください

まだ口コミはありません。

関連記事:
カテゴリの一覧へ
新着記事
New1
PHP
PHP のフォームデータの受け取り($_POST, $_GET)を完全解説!初心者向けガイド
New2
PHP
PHPのスコープとは?グローバル・ローカル・スーパーグローバルを完全解説!
New3
PHP
PHPの演算子をやさしく解説!算術・比較・論理・ビット演算子の使い方
New4
PHP
PHP の変数とは?基本的な使い方とデータ型を徹底解説!
-
人気記事
No.1
Java&Spring記事人気No1
Python
Pythonで辞書のキー・値・アイテムを取得する方法(keys(), values())
No.2
Java&Spring記事人気No2
Python
Pythonで辞書のネスト構造(入れ子辞書)を扱う方法 初心者向け完全ガイド
No.3
Java&Spring記事人気No3
Python
Pythonでエラースタックトレースを表示・取得する方法を徹底解説!初心者向け例外処理入門
No.4
Java&Spring記事人気No4
Python
PythonでMySQLに接続する方法を完全解説!初心者でもわかるpymysqlの基本
No.5
Java&Spring記事人気No5
Python
PythonでExcelファイル(.xlsx)を操作する方法を徹底解説!初心者でもできるopenpyxl・pandasの使い方
No.6
Java&Spring記事人気No6
PHP
PHPで画像ファイルをアップロードする方法を初心者向けに徹底解説!わかりやすい画像処理入門
No.7
Java&Spring記事人気No7
PHP
PHP の日付と時間の取得(date, time, strtotime)を完全解説!初心者でもわかる使い方
No.8
Java&Spring記事人気No8
PHP
PHP のデータ型を完全ガイド!初心者でもわかる int, string, float, bool など
-
-