はじめに
集合に関してすぐ忘れちゃうのですよ
集合とは
- 集合とは、重複する要素をもたない、順序づけられていない要素の集まり
- {}内にカンマ区切りで要素を配置するか、set関数にシーケンス型を渡すことで生成
演算種 | 説明 |
---|---|
和(union) | A か B に含まれる |
積(intersection) | A と B で共通 |
差(difference) | A にのみ含まれる |
対称差(symmetric difference) | A もしくは B にのみ含まれる |
Setオブジェクトを用いて以下のような数学的な演算を行える
和(union)
A か B に含まれる
>>> {1, 2, 3} | {2, 3, 4} # 和
{1, 2, 3, 4}
または
>>> a = {1, 2, 3}
>>> b = {2, 3, 4}
>>> a.union(b)
{1, 2, 3, 4}
元の集合を変更する場合
>>> a = {1, 2, 3}
>>> b = {2, 3, 4}
>>> a.update(b)
{1, 2, 3, 4}
>>> a
{1, 2, 3, 4}
積(intersection)
A と B で共通
>>> {1, 2, 3} & {2, 3, 4} # 積
{2, 3}
または
>>> a = {1, 2, 3}
>>> b = {2, 3, 4}
>>> a.intersection(b)
{2, 3}
元の集合を変更する場合
>>> a = {1, 2, 3}
>>> b = {2, 3, 4}
>>> a.intersection_update(b)
>>> a
{2, 3}
差(difference)
A にのみ含まれる
>>> {1, 2, 3} - {2, 3, 4} # 差
{1}
または
>>> a = {1, 2, 3}
>>> b = {2, 3, 4}
>>> a.difference(b)
{1}
元の集合を変更する場合
>>> a = {1, 2, 3}
>>> b = {2, 3, 4}
>>> a.difference_update(b)
>>> a
{1}
対称差(symmetric difference)
A もしくは B にのみ含まれる
>>> {1, 2, 3} ^ {2, 3, 4} # 対象差
{1, 4}
または
>>> a = {1, 2, 3}
>>> b = {2, 3, 4}
>>> a.symmetric_difference(b)
{1, 4}
元の集合を変更する場合
>>> a = {1, 2, 3}
>>> b = {2, 3, 4}
>>> a.symmetric_difference_update(b)
>>> a
{1, 4}
部分集合(subset)かの判定
左辺の要素すべてが右辺の集合に含まれている場合
>>> {1, 3} <= {1, 2, 3}
True
左辺の要素すべてが右辺の集合に含まれていない場合
>>> {1, 4} <= {1, 2, 3}
False
おわりに
Pythonたのし~