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 は部分集合の判定をしたい集合からメソッドを呼びます。