お帰りなさい｡
セットに関してこれからお話しする方法は､ まさにここにあります｡
多いように見えますが､ 結構似ているんですよ｡
だから頑張れ｡
私たちのために2つのセットを持っているのは､ 1〜5までの私のセットです｡
そして､ あなたのセット､ 4から10までです｡
では､ これらのメソッドが何をするのか､ ひとつひとつ見ていきましょう｡
また､ 例えば学校でベン図を見たことがあると思いますが､ 2つの円が重なり合っているもので､
これからやることはこれによく似ています｡
まず､ 差分と集合は､ 2つの集合を持ち､ 互いに比較する場合に非常に有効です｡
例えば､ ここでいうdifferenceは単にmy set dot differenceのことで､ your setのような別のセットを与えるわけです｡
これをここにプリントして､ 「実行」をクリックすると｡
1､ 2､ 3って出るんですよ｡
最初のマイセットとあなたのセットの違いを見つけることができそうです｡
では､ 4と5の間に重複しているものはありますか？
無視されるし､ 差しかない｡
それが1､ 2､ 3です｡
私のセットから見たとき､ 私のセットとあなたのセットでは何が違うのですか？
まあ､ あなたのセットには1〜3がないんですけどね｡
次の作品はどうですか？
捨てる｡
今回もマイセットでやれば｡
DODの廃棄｡
メンバーであればセットから要素を削除すると書いてある｡
だから､ ここでは廃棄と言うことができる｡
5つです｡
そして､ もし印刷をしたら｡
マイセットと私は「実行」をクリックします｡
何も出てきません｡
しかし､ ここで私のセットを印刷し､ 「実行」をクリックすると､ 「実行」が表示されます｡
1､ 2､ 3､ 4と出るのは､ 5を捨てたところだからです｡
作業スペースをきれいに保つためだけに､ セットを変更するのです｡
コメントアウトさせていただきます｡
次に「違い」です｡
更新しました｡
だから､ 私のセットと言うことになります｡
そして､ もう一度､ 差分アップデートの効果を見てみましょう｡
このセットから別のセットのすべての要素を削除します｡
だから､ ここであなたのセットをすれば
そしてもう一度､ 印刷を行い､ 実行をクリックします｡
セットを改造するだけなので､ 何も得られない｡
だから､ 私たちはプリントを持っていればいいのだということを忘れないでください｡
私のセット
そして､ 今度はこれです｡
私のセットは､ 差分がなくなるように更新しているので､ 1､ 2､ 3だけで更新しています｡
だから､ 4と5は削除されます｡ ここで戻って､ 単純に私のセットを行えば､ 再び変更せずにただ教えてくれた差分とは異なります｡
そして､ 「実行」をクリックします｡
見たか？
私のこのセットは､ ここで修正されたわけではありません｡
しかし､ その後､ 私のセットボトムは､ その違いのために修正されました｡
更新しました｡
わかりました｡
あと少し｡
交差点
そして､ これはもう一度､ 私のセットです｡
そして､ この中でもう一度､ その効果を確かめてみましょう｡
ただ､ 何かと交差しているのです｡
さて､ ここであなたのセットをやって､ 私が印刷をするかどうか調べてみましょう｡
そして､ これを実行します｡
私のセットとあなたのセットが持っている2つの共通点､ 交差点だから､ 4つか5つは出るでしょう｡
このジョイントはどうですか？
まあ､ 自分のセットをやればね｡
そして､ あなたのセット｡
その言葉を何度も言っているような気がします｡
あまり迷惑にならないといいのですが｡
そして､ ここで､ コメントアウトしてみると､ このように実行されます｡
この2つの円は重なっているのか？
何か共通点があるのでしょうか？
例えば､ 私のセットには4がなかった､ 4と5がなかった､ そして私は実行をクリックします｡
バラバラだからトゥルーになるんです｡
つまり､ これらのセットには共通点がないのです｡
すごい｡
もうちょっとだけ｡
次に紹介するのは､ サブセットとスーパーセットです｡
でも実は､ その前にユニオンをやりましょう｡
これがどうなるのか､ 見てみましょう｡
ユニオン
まあ､ 彼女は私のセットを言う｡
そして､ この中にもう1つのセットを追加したい｡
あなたのセット
これを印刷すると
そして､ 「実行」をクリックします｡
1､ 2､ 3､ 4､ 5､ 6､ 7､ 8､ 9､ 10と出ます｡
今のはどうしたんだ？
さて､ ユニオンはこれらのセットを統一しただけで､ 重複しているものは削除したのでしょうか？
それはちょっと嬉しいですね｡
そして､ ご覧の通り､ 新しいセットを作ってくれました｡
新しいセットを返した｡
ちなみに､ PythonではShiftキーを押しながらEnterキーの上のキー､ つまりこの直線のキーを押すことでできる省略表現があります｡
つまり､ シフトと､ バックスラッシュです｡
でも､ シフトを押して､ これを印刷すると､ このように小さな直線が出ますね｡
まあ､ ここでブラケットを外す｡
もう一度､ 走ろう｡
そして､ それが効果的であることもおわかりいただけると思います｡
ちなみに､ これは交差点にも存在します｡
また､ あまり見かけないのですが､ 交差点でも､ 同じように､ "the "をやるだけでいいんです｡
と｡
そして､ そうすれば
私の集合とあなたの集合の交点が得られます｡
わかりました｡
約束しよう､ これは短いものだ｡
つまり､ 他の2つはサブセットとスーパーセットということになります｡
ご想像のとおり､ 私のセットは仮に4と5しかないとして｡
そして､ 「おい､ これは俺のセットだ」と言うんです｡
それはセットのサブセットですか？
そして､ Runをクリックするとこんな感じでプリントされます｡
本当なんです｡
私のセットは､ 4と5が円の中に入っているので､ あなたのセットの円の中に入っているサブセットです｡
つまり､ 私の集合は､ 私の集合の全体が､ この別の集合（私たちはこれを部分集合と呼んでいます）の中に入っているのです｡
その一方で
また､ このスーパーセットという考え方もあります｡
だから､ もし私がisではなく､ doをしたら｡
サブセットは
スーパーセット
虚勢を張るのは､ まあ､ 僕のセットはスーパーセットじゃないから｡
セットを包含していません｡
その逆です｡
あなたのセットは､ 私のセットのスーパーセットです｡
なぜなら､ あなたのセットは､ 私のセットが持っている4と5のすべてを包含しているからです｡
いやはや､ たいへんでしたね｡
と自問自答しているようですが､ そんなの暗記するわけがない｡
そうですか､ よかったです｡
私も暗記は一切していません｡
実のところ､ 私は通常､ Pythonのドキュメントを見たり､ ググったりして､ セットの存在を知っているからです｡
例えば､ 2つのセットを比較したい場合､ ここに行けば欲しいツールが見つかるということが分かっているのです｡
それが､ 私が何度も言っているプログラマーのキーポイントです｡
暗記じゃないんです｡
使えるツールがあることを知り､ それをググることができる能力です｡
映画では､ 誰もが超高速でタイピングし､ すべてをコーディングしているのを見るので､ エキサイティングに聞こえないのはわかりますが､
それは現実の世界ではありえないことなのです｡
実生活では､ ググって解決策を見つけるだけです｡ なぜなら､ 集合とは何か､ 集合で何ができるかを知っているので､
自分の問題に適した方法をググることができるのです｡
次回作でお会いしましょう｡
バイバイ｡