集合¶
集合(set
)はリストに似たデータ構造ですが、以下の特徴があります。
リテラルは、
{'art', 'box'}
のように波括弧を用います。イミュータブル(変更不可)なものしか入りません。
同じものは1つだけ持てます。複数追加しても1つになります。
順序がありません。イテラブルとして取得すると実行のたびに順番が変わることがあります。
集合同士の演算があります。
リストより探索が高速です。
リスト、タプル、辞書と異なり、空を表すリテラルはありません。
変更不可の集合(frozenset)については、「set(集合)型 --- set, frozenset」を参照ください。
リストとの違い¶
要素の追加は、
append
ではなくadd
です。複数の要素の追加は、
extend
ではなくupdate
です。pop
では、位置を指定して削除ができません。list
にないdiscard
で、(エラーにならずに)要素を削除できます。
内包表記¶
リストと同じように内包表記が使えます。角括弧を波括弧に変えるだけです。
たとえば、{i**2 for i in range(1, 4)}
は、{1, 4, 9}
になります。