クルトンのプログラミング教室

Pythonの使い方やPythonを使った競技プログラミングの解法などを解説しています。

set(セット)の使い方【Python】

こんにちは、クルトンです!

この記事ではset(セット)の使い方を解説します。

setとは

setは集合を扱うために作られたオブジェクトです。

setの最大の特徴は重複する要素が存在しないことです。

また、setはlistやdictionaryと違い、インデックス番号やキーによって要素を指定することができません。

では早速、具体的な使い方を見ていきましょう!

setの使い方

{要素, 要素, 要素, ...}

このように、setは波括弧「{}」の間に要素をコンマ「,」で区切って並べることで定義できます。

ただし、要素がないときに、波括弧だけを使って定義しようとすると、dictionary(辞書)として定義されてしまうので注意してください。

空のsetを定義したいときは、set関数を使います

set()

setを使った集合演算

f:id:kuruton456:20200730210916p:plain

ここからは

集合A:{1, 2, 3}
集合B:{3, 4, 5}

を例として、setを使った集合演算を説明します。

setの和集合

AとBの二つの集合のうち、どちらかに属している要素の集合を「AとBの和集合」といいます。

f:id:kuruton456:20200730211126p:plain

setの和集合は|演算子を使うことで得ることができます。


コード

A = {1, 2, 3}
B = {3, 4, 5}

print(A | B)

出力結果

{1, 2, 3, 4, 5}

setの差集合

Aには属するが、Bには属さない要素の集合を「AからBを引いた差集合」といいます。

f:id:kuruton456:20200730211140p:plain

setの差集合は-演算子を使うことで得ることができます。


コード

A = {1, 2, 3}
B = {3, 4, 5}

print(A - B)

出力結果

{1, 2}

setの積集合

AにもBにも属する要素の集合を「AとBの積集合」といいます。

f:id:kuruton456:20200730211201p:plain

setの積集合は&演算子を使うことで得ることができます。


コード

A = {1, 2, 3}
B = {3, 4, 5}

print(A & B)

出力結果

{3}

setの対称差

AとBの積集合だけを除いた要素の集合を「AとBの対称差」といいます。

f:id:kuruton456:20200730211224p:plain

setの積集合は^演算子を使うことで得ることができます。


コード

A = {1, 2, 3}
B = {3, 4, 5}

print(A ^ B)

出力結果

{1, 2, 4, 5}

setとin演算子

setはin演算子を使うことで要素を検索することができます。

コード

S = {1, 2, 3}

print(1 in S)    # 1はSの中に存在するため、Trueが出力される
print(0 in S)    # 0はSの中に存在しないため、Falseが出力される

出力結果

True
False

setと比較演算子

比較演算子を使うことで、ある集合がもう一つの集合の部分集合、もしくは上位集合であるかどうかを調べることができます。

AがBの部分集合であるときは「A <= B」がTrueとなり、AがBの上位集合であるときは「A >= B」がTrueとなります。


コード

#AはBの部分集合であり、BはAの上位集合である
A = {1, 3, 5}
B = {1, 2, 3, 4, 5}

print(A <= B)
print(B >= A)

出力結果

True
True

setとfor文

setはfor文を使って要素を取り出すことができます。

for文の使い方は下の記事で詳しく説明しています。

kuruton.hatenablog.com


コード

S = {1, 2, 3, 4, 5}

for i in S:
    print(i)

出力結果

1
2
3
4
5

今回はsetの使い方について解説しました。

ではまたお会いしましょう!さようなら~