Python の Set

Python の Set とは?

Set (セット、「集合」の意) というのは、順序付けされていない一意の要素 (重複のない要素) で構成された、コレクションです。

セットを作成するには set を呼びます。

次の例をみてください。ここでは、リストと文字列からセットを作成しています。

>>> L = ['a', 'a', 'b', 'c', 'c', 'a']
>>> S = set(L) # リストからセットを作成
>>> S
set(['a', 'c', 'b']) # 重複する文字がなくなった
>>> M = set('Hello') # 文字列からセットを作成
>>> M
set(['H', 'e', 'l', 'o'])

Python Set の演算

セットは下記のような算術演算ができます。

>>> A = set('Hello') # セット A を作成
>>> B = set('World') # セット B を作成
>>> A
set(['H', 'e', 'l', 'o'])
>>> B
set(['d', 'r', 'o', 'W', 'l'])
>>> A - B # A から B に含まれる要素を削除
set(['H', 'e'])
>>> A | B # A と B の要素の和
set(['e', 'd', 'H', 'l', 'o', 'r', 'W'])
>>> A & B # A と B の両方に含まれる要素
set(['l', 'o'])
>>> A ^ B # A と B に含まれるが、両方に含まれるものを除く
set(['e', 'd', 'H', 'r', 'W'])

セット(集合) の包含関係については、不等号で調べることができます。

次のセットを考えます。

Python Set

# 黒い文字は要素(元)であり、灰色の文字はセットの名前にしています。

A, B, C それぞれの要素 (数学的に言えば元) は次の通りです。

>>> A = { 1, 2, 4 }
>>> B = { 2, 3, 5 }
>>> C = { 2, 3, 4, 5 }

このとき、セット B はセット C の真部分集合 (\(B \subset C\) かつ \(B \ne C\)) であるため、次の式が True となります。

>>> B < C
True

A は B の部分集合ではありません。

>>> A <= B
False

A と同じ要素を持つセット D を考えると次の関係があります。

>>> D = { 1, 2, 4 }
>>> A <= D
True
>>> D <= A
True
>>> A < D
False
>>> A == D
True

以上、Python の Set の使い方を説明しました。

ここまでお読みいただき、誠にありがとうございます。SNS 等でこの記事をシェアしていただけますと、大変励みになります。どうぞよろしくお願いします。

© 2024 Python 入門