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

Pythonのセットの比較演算(issubset() / issuperset() の使い方)をやさしく解説!初心者でもわかるセット比較

Pythonのセットの比較演算(issubset() / issuperset() の使い方)
Pythonのセットの比較演算(issubset() / issuperset() の使い方)

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

生徒

「先生、Pythonのセットで『あるセットが別のセットに全部含まれているか』を調べる方法はありますか?」

先生

「はい、それはissubset()メソッドを使います。これは『部分集合かどうか』を調べるためのものです。」

生徒

「逆に『あるセットが別のセットを全部含んでいるか』を調べる方法は?」

先生

「それはissuperset()メソッドを使います。『上位集合かどうか』を調べるメソッドです。順番に説明しましょう。」

1. issubset()とは?部分集合の判定

1. issubset()とは?部分集合の判定
1. issubset()とは?部分集合の判定

issubset()メソッドは「あるセットのすべての要素が、別のセットに含まれているか」を調べます。たとえば、友達グループAのメンバー全員が、友達グループBにもいる場合、AはBの部分集合です。


a = {1, 2, 3}
b = {1, 2, 3, 4, 5}

print(a.issubset(b))  # True
print(b.issubset(a))  # False

True
False

上の例では、セット(a)はセット(b)の中に全て含まれているため、Trueとなります。逆は含まれていないのでFalseです。

2. issuperset()とは?上位集合の判定

2. issuperset()とは?上位集合の判定
2. issuperset()とは?上位集合の判定

issuperset()メソッドは「あるセットが、別のセットのすべての要素を含んでいるか」を調べます。つまり、セットが別のセットを丸ごと内包しているかを調べる時に使います。


a = {1, 2, 3, 4, 5}
b = {2, 3}

print(a.issuperset(b))  # True
print(b.issuperset(a))  # False

True
False

セット(a)はセット(b)のすべての要素を含んでいるのでTrueです。逆は含んでいないのでFalseとなります。

3. 例えでわかるissubset()とissuperset()

3. 例えでわかるissubset()とissuperset()
3. 例えでわかるissubset()とissuperset()

集合のイメージは「箱」に例えられます。
issubset()は「小さい箱が大きい箱の中にすっぽり入っているか?」を聞いているのに対し、
issuperset()は「大きい箱が小さい箱を丸ごと包んでいるか?」を確認しています。

例えば、
「好きな果物セットA」と「持っている果物セットB」で考えてみましょう。
好きな果物Aが全部持っている果物Bに含まれていれば、好きな果物は持っている果物の部分集合です。

4. issubset()とissuperset()の戻り値は?

4. issubset()とissuperset()の戻り値は?
4. issubset()とissuperset()の戻り値は?

どちらのメソッドも、結果は真偽値(TrueFalse)で返します。
条件を満たせばTrue、満たさなければFalseとなります。

プログラミングで「条件が合っているかどうか」を判定する基本的な方法の一つです。

5. セットの比較演算で気をつけること

5. セットの比較演算で気をつけること
5. セットの比較演算で気をつけること

セットは順序(並び)がなく、重複しない特徴があります。そのため、issubset()issuperset()は「要素の含み具合」だけを調べます。
順序は気にしません。

また、空のセットはどのセットにも部分集合として含まれるので、set()はどんなセットの部分集合としてもTrueとなります。

6. セットの比較演算の便利な使い方

6. セットの比較演算の便利な使い方
6. セットの比較演算の便利な使い方

セットの比較演算は、例えば以下のような場面で役立ちます。
・ユーザーの持つ権限が必要な権限を満たしているかのチェック
・買い物リストがすでに持っているものに含まれているか確認
・データの重複や包含関係の検証

Pythonのセットはこのように、比較演算をシンプルに書けるので便利です。

まとめ

まとめ
まとめ

今回の記事では、Pythonのセット(set)に用意されている比較演算メソッドである issubset()issuperset()について、基本から丁寧に確認してきました。 セットは「重複しない要素の集まり」という特徴を持つデータ型で、要素の順番を持たない点が大きな特徴です。 そのため、リストやタプルとは違い、「含まれているかどうか」「すべて揃っているか」といった 集合としての関係性を調べる処理がとても得意です。

issubset()は、「このセットの中身は、すべて別のセットに含まれているか?」を調べるためのメソッドでした。 部分集合かどうかを判定する場面で使われ、権限チェックや条件判定など、実務でもよく登場します。 一方でissuperset()は、「このセットは、別のセットを丸ごと含んでいるか?」を確認するメソッドで、 上位集合かどうかを調べたいときに役立ちます。 この2つは表裏一体の関係にあり、どちらも真偽値(True / False)を返すため、 if文などの条件分岐と非常に相性が良いのもポイントです。

また、セットの比較では順番は一切関係ないことも重要でした。 要素が同じであれば、並び順が違っていても結果は変わりません。 さらに、空のセットはすべてのセットに含まれるという集合のルールも、 プログラムを書く上で知っておくと混乱を防げます。 こうした集合の考え方を理解しておくことで、Pythonのセット操作が一気に扱いやすくなります。

セット比較の確認用サンプルプログラム

ここで、記事内容を振り返るためのシンプルなサンプルをもう一度確認してみましょう。 セットの包含関係をチェックする基本的な書き方です。


required = {"read", "write"}
user_permissions = {"read", "write", "delete"}

# ユーザーの権限が必要条件を満たしているか
print(required.issubset(user_permissions))

# 管理者権限かどうかのチェック
print(user_permissions.issuperset(required))

True
True

このように、issubset()issuperset()を使うと、 複雑なループや条件分岐を書かなくても、 「含まれているか」「満たしているか」を一行で安全に判定できます。 セットの比較演算は、コードを短く、読みやすく保つための強力な武器になります。

先生と生徒の振り返り会話

生徒

「issubset()とissuperset()って、最初は名前だけ見ると難しそうでしたけど、 実際は『全部含まれているか』を調べているだけなんですね。」

先生

「その通りです。集合の考え方を知っていれば、とても直感的なメソッドなんですよ。 if文と組み合わせると、条件チェックが一気に簡単になります。」

生徒

「順番を気にしなくていいのも便利ですね。 リストだと同じことをやろうとすると、結構大変そうです。」

先生

「そうですね。セットは『存在しているかどうか』を扱うのが得意です。 権限管理やチェック処理では特に活躍しますよ。」

生徒

「これなら、自分のプログラムでも条件判定をすっきり書けそうです。 セットの比較演算、しっかり使ってみます!」

先生

「ぜひ使ってみてください。今回の内容を理解できたなら、 Pythonのデータ構造の扱い方が一段レベルアップしていますよ。」

カテゴリの一覧へ
新着記事
New1
Flask
認証と認可の違いを整理しよう!Flaskで押さえるべき基礎概念
New2
Flask
Flaskで非同期フォーム送信(Ajax POST)を実装する方法を解説!初心者でもわかるステップ解説
New3
Python
Pythonで定数を定義する方法!変更されない変数の書き方と命名ルールを初心者向けに解説
New4
Python
PythonでMySQLに接続する方法!pymysqlの基本的な使い方
人気記事
No.1
Java&Spring記事人気No1
Python
Pythonとは何か?初心者向けにできること・特徴・インストール手順までやさしく解説
No.2
Java&Spring記事人気No2
Flask
Flaskでデータベースを使う基本!SQLAlchemyの導入方法をやさしく解説
No.3
Java&Spring記事人気No3
Python
Pythonでリストの要素を検索・取得する方法!index()やin演算子の活用法
No.4
Java&Spring記事人気No4
Python
Pythonのインストール方法まとめ!Windows・Mac・Linux別にステップ解説
No.5
Java&Spring記事人気No5
Python
Pythonで仮想環境(venv)を作る方法!初心者向けに環境構築をステップ解説
No.6
Java&Spring記事人気No6
Python
Pythonプログラムの書き方を基礎から学ぼう!初心者が覚えるべき文法とは?
No.7
Java&Spring記事人気No7
Flask
Flaskアプリの環境変数をクラウドで安全に設定する方法!初心者のための完全ガイド
No.8
Java&Spring記事人気No8
Python
PythonでHello Worldを表示するには?初心者向けに最初の1行を実行してみよう