環境設定 数値 文字列 正規表現 リスト タプル 集合 辞書 ループ 関数 クラス データクラス 時間 パス ファイル スクレイピング その他

Python 集合の使い方:空集合、追加と削除、和集合・差集合などの演算、部分集合の判定など

最終更新日 2019.11.28

Python の集合はものが集まったもので、中かっこにくくって表します。集合に順番はありません。

x = {1, 2, 3}
y = {'Apple', 'Microsoft'}

x も y も集合です。

x = {1, 2, 3}
y = {'Apple', 'Microsoft'}

print(type(x))  # <class 'set'>
print(type(y))  # <class 'set'>

type は型を表示する関数で、集合は英語で set といいます。以降、集合の要素を元といいます。集合/元はどちらも数学用語です。

Python で空集合を作成する

なにもない集合を空集合といいます。空集合は Python のビルト・イン関数 set で作ります。

x = set()

print(x)  # set()
print(type(x))  # <class 'set'>

集合に元を追加する

集合に元を追加するときは add を使います。

x = {1, 2}

x.add(3)

print(x)
# {1, 2, 3}

集合に集合を結合する

集合に集合を結合するときは union を使います。

x = {1, 2}
y = {3, 4}

z = x.union(y)

print(z)
# {1, 2, 3, 4}

union はもとの集合 x と y を変えません。

集合から元を削除する

集合から元を削除するときは remove を使います。

x = {1, 2}

x.remove(1)

print(x)  # {2}

和集合・差集合・積集合の演算子

和集合は | で、差集合は - で、積集合は & で表します。

x = {1, 2}
y = {1, 3}

a = x | y
b = x - y
c = x & y

print(a)  # {1, 2, 3}
print(b)  # {2}
print(c)  # {1}

部分集合の判定

部分集合の判定は issubset で行います。

x = {1, 2, 3}
y = {1, 2}
z = {7, 8, 9}

if y.issubset(x):
    print('y は x の部分集合である')
else:
    print('y は x の部分集合でない')

if z.issubset(x):
    print('z は x の部分集合である')
else:
    print('z は x の部分集合でない')

# y は x の部分集合である
# z は x の部分集合でない

issubset は部分集合の判定をしたい集合からメソッドを呼びます。