リスト、タプル、辞書、はよく見るけど、set()って何?
もしくは、set()ってなんだっけ?
Pythonに携わってすぐの方はもちろんのこと、既にコードが書ける!という方にも復習の意味を兼ねて、今回は「集合」set()についての概要、使い方、を記載しております
こちらを読めば、さらにプログラミングの幅が広がるかと思います!!
「集合」set()とは

集合オブジェクトは集合との名の通り、単なる要素の集まりを表します
そのため、リストなどにある要素の順序はありません
その点、辞書に近いかもしれません
見た目的にも、辞書のキーだけ集まったようなものになります
>>> test_set = {‘a’,’b’,’c’,’d’}
集合のオブジェクトを作るには、
- set()
- {}
のどちらかを使います
ただし、
>>> kara_set = {}
となってしまうと、空の辞書となってしまいますので、
空の集合の場合は
>>> kara_set = set()
で作ります
セットは辞書と同じ波カッコを使い、同じ値を持つ要素は存在しません
set()への変換
文字列 → set()
>>> set(‘japanese’)
{‘n’, ‘e’, ‘j’, ‘a’, ‘s’, ‘p’} #重複している要素は一つになります
リスト → set() ※タプルも同様です([]を()に変えるだけ)
>>> set([‘japan’,’korea’,’china’])
{‘china’, ‘japan’, ‘korea’}
辞書 → set()
>>> set({‘japan’:’japanese’, ‘us’:’english’, ‘china’: ‘chinese’})
{‘china’, ‘us’, ‘japan’} #辞書を渡すとキーだけの集合となります
演算子
はじめに
演算子の説明につかう、集合を作成します

こちらでは例として、
サッカー部、野球部に所属しているメンバーを変数に格納しています
>>> soccer_club = {‘hamada’, ‘matsumoto’, ‘tanaka’} #サッカー部
>>> baseball_club = {‘hamada’, ‘endo’, ‘hosei’} #野球部
>>> kitaku_bu = {‘watabe’} #帰宅部
積集合: & もしくは intersection()関数

サッカー部、野球部のどちらの部活にも所属している人の集合になります!
>>> soccer_club & baseball_club
{‘hamada’}
>>> soccer_club.intersection(baseball_club)
{‘hamada’}
和集合: | もしくは union()関数

どちらか一方にでも所属している人の集合になります!
>>> soccer_club | baseball_club
{‘matsumoto’, ‘tanaka’, ‘hosei’, ‘endo’, ‘hamada’}
>>> soccer_club.union(baseball_club)
{‘matsumoto’, ‘tanaka’, ‘hosei’, ‘endo’, ‘hamada’}
差集合: – もしくは difference()関数

サッカー部には所属しているが、野球部には所属していない
>>> soccer_club – baseball_club
{‘matsumoto’, ‘tanaka’}
>>> soccer_club.difference(baseball_club)
{‘matsumoto’, ‘tanaka’}

野球部には所属しているが、サッカー部には所属していない
>>> baseball_club – soccer_club
{‘hosei’, ‘endo’}
>>> baseball_club.difference(soccer_club)
{‘hosei’, ‘endo’}
その他の演算子
排他的OR: ^ もしくは symmetric_difference()関数

サッカー部、野球部のどちらか一方にだけ所属している人の集合です
部分集合: <= もしくは issubset()関数)
※逆パターンは >= もしくは issuperset()関数
>>> futsal_club = {‘hamada’, ‘matsumoto’} #futsal_clubができた

フットサルクラブのメンバーは全員、サッカー部にいるメンバーである
>>> futsal_club <= soccer_club
True

サッカー部のメンバーは当然全員サッカー部のメンバーである
>>> soccer_club <= soccer_club
True
真部分集合: < 逆パターンは >
上記と違い、この場合はFalaseとなる
>>> soccer_club < soccer_club
False
この場合は、Trueで上に同じ
>>> futsal_club < soccer_club
True
まとめ

「集合」set()につきましては、以上となります
要素がたくさんある集合などで、重複や全体を調べるのが非常に簡単になりそうですね!
僕自身、リスト、タプル、辞書はよく使っているのですが、set()はほとんど使っていませんでした
改めて調べなおしたら、とても面白い!!となったので共有させて頂きました
次回以降もお楽しみに!