set要素はこんな時に使え!set型とは公式ドキュメントより公式ドキュメントには以下のような記載があります。オブジェクトの順序なしコレクションです。ような数学的演算の計算が含まれます。コレクションには順序がないので、集合は挿入の順序や要素の位置を記録しません。従って、集合はインデクシング、スライシング、その他のシーケンス的な振舞いをサポートしません。参照)公式ドキュメントはい、これだけでは分かりづらいですね。備忘も兼ねて特徴や使い道をまとめていきます。同じ要素は一つしか含まれない。言葉でまとめてしまうと、listは順番を付けて並べるもの、setは順番のないユニークな値の集まりです。順番を保持しないがため諸々の演算がlistに比べて高速に出来るのも大きな特徴です。okその他にも以下のメソッドがあります。比べて圧倒的に速い(dictのキーを用いる検索も高速です)のです。0.016結果はなんとおよそset型を使用した場合は、listの約100倍ほど高速!なぜこうなるかというと、list型はすべての要素に対して一致する要素があるかを最初から頑張って探しているからです。要素が一つ増えることに、100万個あった場合、目的の要素が最後にあると考えると恐ろしいですよね。それに対してset型は検索が行いやすいようにデータを整列して保持しています。(逆に言えば、そのため要素を追加した順番は保持されません。)データが整列されているため、例えば「1,000」があるかを探したいとなった場合、真ん中の数字より大きいか小さいを判定、大きければ大きい方の真ん中の数字より大きいか小さいか判定・・・というように要素を半分ずつに絞り込んで行く、というようなことが可能となっています。データベースでindexを貼られているようなイメージを持っていて差し支えありません。重複を省いた結果を返したいAに含まれてBに含まれないなど、集合演算をする時set要素を効果的に使ってコーディングをすることで、速度を改善できることや、見通しのよいコードを書くことが出来るようになります。2019.09.12自戒も込めて書き記していきます。世の中にいいコードがたくさん生まれますように。setは被りなく順序なく、要素を格納してくれる機能です。ファイル分割とリアルタイムプレビューで快適にAPIドキュメントを作成したかった。「新しいLinuxの教科書」を読んだらLinuxの気持ちが分かるようになった。