【Python】14日目 – [集合] ~ 和, 差, 積を学ぶ

ポイント

プログラミング学習が義務教育でも取り入れられるようになり、ほぼすべての人が避けては通れない時代に突入してしまいました。
基本的にはローコードやノーコードテクノロジーが発達し、個人で隅々まで覚える必要はないとも言えますが、やはり自在に操れればまさに100人力とも言えます。
プログラミングがあなたのやりたい何かに合致した場合、是非100日でサクッと覚えてしまいましょう。
100日でざっくりと基礎を身に着けられるように構成しています。

【Python】環境構築 Windows 10 (エラー対処法も)

Pythonを学ぶべき5つの理由

pandas100日チャンレジはこちら

Python 3 入門 + 応用 +アメリカのシリコンバレー流コードスタイルを学ぶオンライン講座

和, 差, 積を学ぶ

.union()
.difference()
.intersection()
対称差.symmetric_difference()
部分集合かの判定.issubset()

集合では、和集合、差集合、積集合、対称差などそれぞれ数学的な演算処理を行うことができます。

ポイント

和は論理和を表す記号 | 、積は論理積を表す記号 & 、差は – を使って演算します。

演算後の結果が集合となる場合は、常に新しいオブジェクトとなります。

では、早速コードを書いていきましょう。

def main():
    union_A = {1, 2, 3} | {2, 3, 4}
    print(union_A)

    intersection_B = {1, 2, 3} & {2, 3, 4}
    print(intersection_B)

    difference_C = {1, 2, 3} - {2, 3, 4}
    print(difference_C)

if __name__ == '__main__':
    main()

このようになっています。

def main():
if __name__ == '__main__':
    main()

は後々コラムでご紹介しますので、今はとにかく写経してみてください。

対称差と部分集合の判定

ポイント

対称差の演算は記号 ^ 、部分集合の判定には <= もしくは >= を使用します。

def main():
    # 集合の対称差
    test_a = {1, 2, 3} ^ {2, 3, 4}
    print(test_a)

    # 左辺の要素がすべて右辺の集合に含まれている
    test_b = {1, 3} <= {1, 2, 3}
    print(test_b)

    # 右辺の要素がすべて左辺の集合に含まれている
    test_c = {4, 5, 6} >= {4, 5}
    print(test_c)

    # 左辺に右辺の集合に存在しない要素が含まれている場合
    test_d = {3, 4} <= {1, 2, 3}
    print(test_d)


if __name__ == '__main__':
    main()

実行結果はこのようになりました。

じっくり頭の中で整理しながらコードを書いていかないと、ぐちゃぐちゃになってしまいますので、どことどこがシェアしているのか?または、シェアしていないのか?しっかり整理しながらテストしていきましょう。

この記事を書いた人

こうたろう

当サイトの管理人
金田明彦氏直伝金田式DC録音専門の「タイムマシンレコード」で音響を学び、秋山庄太郎氏後継の写真スタジオ「村上アーカイブス」で映像と写真を学ぶ。
現在はPythonを使ったデータ分析を用いた投資法にて投資&投機を研究しつつ、フォトグラファー&音響エンジニアとして活動中。

趣味は毎朝楽しむコーヒーと竜笛(和楽器の練習)
好きな動物は猫。
好きな食べ物はカリフラワー