集合の基礎
入門Python3 3.5
集合とは辞書のキーだけのようなもの、もしくは重複の無いリストのようなものである。
でこの集合を使って何ができるかというと、集合同士で比較することができ、例えば一方に含むものや両方に含むものといったようなそういう比較を簡単に実装できるかんじですね。
集合の作成
hash_set = {1,2,3,4} print(hash_set)
$ py main.py {1, 2, 3, 4}
辞書の生成と同じように見えますが、辞書がキーと値のセットなのに対して集合はリストやタプルの用にカンマのみで定義するかんじになってます。
また集合は重複した値は許可されていません。よって重複した要素を入れた場合は自動で除去されます。
hash_set = {1,2,3,4,1} # 1が重複 print(hash_set)
$ py main.py {1, 2, 3, 4}
intersectionによる積集合
お互いの集合に含まれるものだけを返す。
hash_set1 = {1,2} hash_set2 = {2,3} result = hash_set1.intersection(hash_set2) print(result)
$ py main.py {2}
またintersectionの変わりに&でも同じ処理になる。
result = hash_set1 & hash_set2
unionによる和集合
お互いの集合を混ぜ合わせたものを返す。
hash_set1 = {1,2} hash_set2 = {2,3} result = hash_set1.union(hash_set2) print(result)
$ py main.py {1, 2, 3}
またunionの変わりに|でも同じ処理になる。
result = hash_set1 | hash_set2
differenceによる差集合
左の集合から右の集合を取り除いたものを返す。
hash_set1 = {1,2} hash_set2 = {2,3} result = hash_set1.difference(hash_set2) print(result)
$ py main.py {1}
またdifferenceの変わりに-でも同じ処理になる。
result = hash_set1 - hash_set2
これら積集合、和集合、差集合以外にも色々な演算ができるみたいですが使用頻度はあまり高くなさそうなので基礎としてはこれくらいで。