見出し画像

Python3 | ②セット(集合)

こんにちは、現役理系大学生のShogoです!

今回は、Python3超入門講座第2弾です!

前回の記事を読んでいない方は、こちらからご覧ください。


今回の内容は、「セット」です。セットは、集合の計算によく用いられるものです。セットなどの型は混同しやすいので、しっかりと違いを理解していきましょう!

開発環境

開発環境は、VScodeです。

VScodeでのPythonの実行方法は、以下のURLを参考にしてみてください。


2-1 セット { }

セットとは、かんたんにいうと、集合を扱うための型の1つです。

以前紹介した、リストと同じように、一度に複数の値を扱うことができます。


✅リストとセットの違い

リストとセットの違いは、要素の重複にあります。

以前紹介したように、リストは [ ] で表され、中身は重複可能です。

対して、セットは { } で表され、中身は重複しないようになっています。

number = [1, 1, 2, 3, 4, 4]
print(number) # [1, 1, 2, 3, 4, 4]

number = {1, 1, 2, 3, 4, 4}
print(number) # {1, 2, 3, 4}

以上のコードのように、リストでは出力した値がそのまま表示されています。対して、セットでは 1, 4 が重複しているので、省略された形で表示されています。


順序は記憶されない

また、セットでは順序が記憶されません。

例えば、次のように順序がバラバラでも、出力結果はおなじになります。

number = {1, 1, 2, 3, 4, 4}
print(number) # {1, 2, 3, 4}

number = {4, 2, 1, 3, 1, 4}
print(number) # {1, 2, 3, 4}


2-2 和集合

画像2

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

wa = A | B
print(wa) # {1, 2, 3, 4, 5}

和集合を求めたい場合は、「 | 」を用います。

例えば、図のようにAを1, 2, 3、Bを3, 4, 5とします。求めたい和集合は緑の部分なので、waという変数にA | Bを使うこと求めることができます。

printでの出力結果は、3が重複していないので、和集合がきちんと求められています。


2-3 積集合

画像3

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

seki = A & B
print(seki) # {3}

積集合を求めたい場合は、「 & 」を用います。

同様に、Aを1, 2, 3、Bを3, 4, 5とします。求めたい積集合は緑の部分なので、sekiという変数にA & Bを使うこと求めることができます。

printでの出力結果は、3。つまり、積集合がきちんと求められています。


2-4 差集合

画像4

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

sa = A - B
print(sa) # {1, 2}

差集合を求めたい場合は、「 - 」を用います。

求めたい差集合は緑の部分なので、saという変数にA - Bを使うこと求めることができます。

printでの出力結果は、1, 2。Aの要素からBの要素が引かれていることがわかります。


2-5 対称差集合

画像5

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

taisyosa = A ^ B
print(taisyosa) # {1, 2, 4, 5}

対象差集合を求めたい場合は、「 ^ 」を用います。対称差集合とは、共通部分以外の集合のことを言います。

求めたい対称差集合は緑の部分なので、taisyosaという変数にA ^ Bを使うこと求めることができます。

printでの出力結果は、1, 2, 4, 5。つまり、共通部分の3が除かれた要素が出力されていることがわかります。


2-ex 3つ以上の場合

画像6

A = {1, 2, 3}
B = {3, 4, 5}
C = {3, 6, 7}

wa = A | B | C
print(wa) # {1, 2, 3, 4, 5, 6, 7}
seki = A & B & C
print(seki) # {3}
sa = A - B - C
print(sa) # {1, 2}

もちろん3つ以上の場合でも、同じように集合を扱うことができます。


2-practice

画像7

問題:図の集合から{4, 5}を出力しなさい。

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



答え:

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

sa = B - A
print(sa)


まとめ

画像1

今回は、「セット」を学習しました。

今回の例は、目視でできるものが多かったですが、実際のデータになると、サンプル数が多くとても時間がかかります。

そんなときにセット型を使って、作業の効率化を図りましょう!


質問や訂正があれば、遠慮なくこの記事にコメント、もしくは、TwitterにDMをしてください!(@shogo_python)

今回の記事が"いいね!"と思ってくれた方は、スキとフォローをよろしくおねがいします!

では、またの機会にお会いしましょう!

今回のおすすめ書籍


Python3 超入門講座 一覧はこちらから