集合型 (set)
ハッシュ可能なオブジェクトの順序なしの集合を表すデータ構造。重複した要素を持たない。
参考:
集合型 (set / frozenset) | Python 3.x ドキュメント [公式]
導入
参考:
使い方
空のセットを作成する。
empty = set()
セットを作成する。
digits = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
セットから要素を一つ取り出す。セットが空の場合、KeyError
が発生する。
digit = digits.pop()
セットに要素を追加する。
digits.add(101)
セットから要素を取り除く。要素が存在しなかった場合、KeyError
が発生する。
digits.remove(101)
セットに要素が含まれていれば取り除く。要素が存在しない場合は無視される。
digits.discard(101)
参考:
集合演算
|
:和集合 (どちらかの集合に含まれる)&
:積集合 (両方の集合に含まれる)-
:差集合 (左の集合に含まれて、右の集合に含まれない)^
:対称差集合 (左の集合のみに含まれるかあるいは右の集合のみに含まれる)<=
:包含/部分集合の判定 (左の集合の要素は全て右の集合に含まれている)
参考:
set 型で集合演算/和集合、積集合や部分集合の判定など | note.nkmk.me
集合の演算を行う/和集合、積集合、差集合、対称差集合 | Let’s プログラミング
Python で集合の演算を行う | DevelopersIO
空集合
空のセットを作成する。
empty = set()
セットが空かどうか判別する。
if len(empty) == 0: print('Empty!')
参考:
Python で空の集合を定義する/集合が空集合かどうか確認する | MathPython
変換
リストをセットに変換する。
digits = set([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
参考:
Python の set (集合) とリストを相互に変換する方法 | HEADBOOST
文字列、タプル、range などから集合を作成する | Let’s プログラミング
インポートエラー (Set / sets)
参考:
can’t import Set from sets (“no module named sets”) – Stack Overflow
Importing Sets in python – Stack Overflow
まとめ
参考: