【Python】setのまとめ

Python

Pythonのsetは要素の重複を許さないデータ構造です。

便利なデータ構造ですが、使用方法であやふやな部分があるので
復習のため、setの利用方法をまとめてみました。

setの作成

波括弧{}で囲い、要素を入力します。

setは要素の重複を許しません。
setは要素の順序を保持しません。

要素の順序がないので、インデックスで指定するとTypeErrorになります。

 

リスト、タプル、ディクショナリーからもsetを作成できます。
ディクショナリーはキーがsetの要素となります。

 

setに要素を追加する

add

addでsetに要素を追加します。
set内に存在する要素を追加しても何も起こりません。

 

update

updateで別setの内容を取り込みます
重複する要素は取り込まれません。

 

setから要素を削除する

remove

setから要素を削除します。

要素がない場合はKeyError例外になります。

 

discard

setから要素を削除します。

discardメソッドで指定した要素が存在しなくても、エラーになりません。

 

pop

setから要素をランダムで削除します。

削除した要素はpopメソッド実行時に受け取ることができます。

setに要素がないときは、KeyError例外になります。

 

clear

set内の要素をすべて削除します。

 

set内の要素の存在確認

要素がset内に存在するかはin演算子を使用します。

 

setの集合演算

和集合(Union)

set_1とset_2に含まれるすべての要素からなる、新しい集合を作成します。

|またはunionメソッドを使用します。

 

積集合(intersection)

set_1とset_2に共通で存在する要素からなる、新しい集合を作成します。

&またはintersectionメソッドを使用します。

 

差集合(difference)

set_1に含まれて、かつset_2に含まれていない、新しい集合を作成します。

-またはdifferenceメソッドを使用します。

 

対称差(symmetric_difference)

set1とset2のいずれか一つだけに含まれる要素からなる、新しい集合を作成します。

^またはsymmetric_differenceメソッドを使用します。

 

部分集合(subset)

set1がset2の部分集合か判定します。

<=またはissubsetメソッドを使用します。

 

上位集合(superset)

set1がset2の上位集合か判定します。
>=またはissupersetメソッドを使用します。

 

参考

setの計算量

計算量は公式ページのTimeComplexityのsetが参考になります。

TimeComplexity - Python Wiki

コメント