セットとは
Python におけるデータ集合の最後に、セットを紹介します。セットは並び順のないデータの集合を表すものです。セットは次のように作成します。
セット名 = {値, 値, 値, …}
セットは{ }を使って値を指定することに注意してください。セットの要素には順序がないためご注意ください。では、セットを作成するサンプルコードを見てみましょう。
colors = {"赤", "青", "黄"}
セットの中の値は文字列の「赤」「青」「黄」です。セットの中の値は順序を持たないため、今回のような「色の種類」などのデータを格納することに適しています。
セットの追加・削除
セットに値を追加したり、削除するには下記の構文を用います。
セット名. add(値)
セット名. remove(値)
実際のサンプルコードは下記のようになります。
colors = {"赤", "青", "黄"}
colors.add("緑")
colors.remove("黄")
print(colors)
上記のコードを実行すると、「緑」という値が追加され「黄」という値が削除された結果のセットが出力されるため、
{‘青’, ‘赤’, ‘緑’}
という出力がターミナルに表示されます。セットには順序がないため、値の順番は実行するごとに変化します。
また、セットには値の変更をするための操作はありません。
セットによる集合演算
ここまでのセットの紹介では、セットにデータを格納することのメリットをあまり感じられないかもしれません。
しかしセットには「集合演算が可能」という他のコレクションにはない特徴があります。サンプルコードを紹介する前に、集合演算とは何なのかについてまずふれていきましょう。
①和 : 集合のすべての要素を求める
②共通 : どちらの集合にも共通する要素を求める
③差 : いずれかの集合にあってほかの集合にないものを求める
④対象差 : どちらか一方の集合のみにある要素をすべて求める
上記をもとに、セットの集合演算を行うコードを見てみましょう。
①セット同士の和を求める
colors1 = {"赤", "青", "黄"}
colors2 = {"緑", "白", "黄"}
print(colors1 | colors2)
実行結果は {‘黄’, ‘赤’, ‘青’, ‘白’, ‘緑’} (順不同)です。
②セット同士の共通を求める
colors1 = {"赤", "青", "黄"}
colors2 = {"緑", "白", "黄"}
print(colors1 & colors2)
実行結果は {‘黄’} です。
③セット同士の差を求める
colors1 = {"赤", "青", "黄"}
colors2 = {"緑", "青", "黄"}
print(colors1 - colors2)
実行結果は {‘赤’} です。
④セット同士の対象差を求める
colors1 = {"赤", "青", "黄"}
colors2 = {"緑", "白", "黄"}
print(colors1 ^ colors2)
実行結果は {‘緑’, ‘青’, ‘赤’, ‘白’} (順不同)です。
セットを扱う上で集合演算はぜひマスターしておきましょう。
Pythonに関するその他の記事はこちらから。
コメント