Python

【Python】21. 集合演算

変数の入れ子を使い、
とあるセットにある値と、違うセットにある値を比較し、両方に含まれる値を取り出してみましょう。
関ヶ原の東軍と西軍の武将を比較し、両方に属する武将を調べてみましょう!


busyou = {
    '豊臣':{'長宗我部','小早川','真田','石田'},
    '徳川':{'伊達','真田','小早川','本多'}
}

kyoutuu = busyou['豊臣'] & busyou['徳川']

print(kyoutuu)

出力結果:{‘真田’, ‘小早川’}

真田は親子で東軍西軍に別れ、小早川は何故か両方に属する結果になりました!

集合演算

続いて集合演算というものを使ってみましょう
これはグループAとグループBを並べて集合、差異などを抽出する演算です。

先程より人数を多くしてみます。


tougun = {'徳川','伊達','真田','小早川','本多'}
seigun = {'豊臣','長宗我部','小早川','真田','石田'}

# 全員
print('東西合わせた人数')
print(tougun|seigun)
#両方に属する
print('何故か両方に属している人々')
print(tougun&seigun)
#片方にしか属さない
print('東軍にいて西軍にいない人')
print(tougun-seigun)
#差異となっている人たち
print('差異となっている人たち')
print(tougun^seigun)

出力結果:
東西合わせた人数
{‘真田’, ‘小早川’, ‘長宗我部’, ‘石田’, ‘徳川’, ‘本多’, ‘豊臣’, ‘伊達’}
何故か両方に属している人々
{‘真田’, ‘小早川’}
東軍にいて西軍にいない人
{‘本多’, ‘伊達’, ‘徳川’}
差異となっている人たち
{‘本多’, ‘豊臣’, ‘長宗我部’, ‘伊達’, ‘石田’, ‘徳川’}

家康「我が軍にしかいない者は!」
本多「本多、伊達、徳川にございます!」
家康「敵で裏切りそうな者は!」
本多「真田、小早川にございます!」
家康「真田は嫌だ!」

みたいな会話がこの表でできますね!

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です