1. TOP
  2. プログラム
  3. ソフト
  4. python
  5. 集合(2)

集合(2)

2019-03-28_133227_RM3

組み合わせと演算

◎オレンジジュースかベルモットが入ったカクテルを探すには
積集合演算子を使う
>>>for name, contents in drinks.items():
if contents & ('vermouth', 'orange juice'):
print(name)

screwdriver
martini
manhattan

&演算子の結果は、両方の集合に含まれているすべての要素を格納する
集合です。contentsにオレンジジュースもベルモットも含まれていな
ければ、&は空集合を返し、Falseになる

◎ウオッカがあって、クリームとベルモットがないものを書き直す
>>>for name, contents in drinks.item(): if 'vodke' in contents and not contents &('vermouth',
'cream'):
print(name)

screwdriver
black russian

◎サンプル集合aと、b
>>>a = {1, 2}
>>>b = {2, 3}

◎積集合は & か intersetction()関数
>>> a & b
{2}
>>> a.intersetction(b)
{2}

>>> bruss = drinks['black russian']
>>> wruss = drinks['white russian']
>>> bruss & wruss
{'kahius', 'vodk'}

◎和集合は、 | 演算子か集合のunion()関数で少なくともどちらかの集合に含ま
れている要素の集合
>>> a | b
{1, 2, 3}
>>>> a.union(b)
{1, 2, 3}

>>> bruss | wruss
{'cream', 'kahlus', 'vodka'}

◎差集合は、第一の集合には含まれているが、第2の集合には含まれて
いない要素の集合で、 - 記号かdifference()関数で得られる
>>> a - b
{1}
>>> a.difference(b)
{1}

>>>bruss - wrues
set()
>>>wrues - bruss
{'cream'}

◎ここから、使うことが少ないであろう演算
◎排他的OR どちらか片方に含まれているが、両方には含まれて
>>> a ^ b
{1, 3}

>>> a.symmetric_difference(b)
{1, 3}

>>>bruss ^ wruss
{'cream'}

◎片方の集合がもう片方の集合が部分集合になっているかのチェック
>>> a <= b
False
>>> a.issubset(b)
False

ブラック・ルシアンにクリームを加えるとホワイト・ルシアンになる
>>> bruss <= wruss
Teue
◎第一集合が第二集合の真部分集合になるためには、第二集合は
第一集合のすべてn要素にくわえて別の要素を持っていなければ
ならない
真部分集合関係は、<で計算できる
◎上位(スーパーセット)は部分集合の逆で、だ2の集合のすべての要素
が第一の集合の要素になっている関係、>=演算子かissuperset()関数で
調べる
>>> a >= b
>>> a.issuperset(b)
◎最後に、>演算子を使えば、第一集合が第2の集合の真上位集合第一の
集合に第2の集合の全ての要素とその他の要素が含まれているかどうか
要素