<一覧に戻る

セットの定義と特徴

Pythonでデータを扱う際に、「重複のないデータ」を管理したいと思ったことはありませんか? 例えば、リストに同じ値が何度も出てくる場合、重複を取り除く処理が必要です。

そんなときに便利なのが、セット(set)です。

セットは、数学の集合の概念をそのままプログラミングで使えるデータ構造であり、ユニークな要素を簡単に管理できます。

セットとは?Pythonにおける特徴を理解しよう

Pythonのセットは、「重複しない要素の集まり」を表します。 つまり、同じ値を2回追加しても、セットの中では1回しか保持されません。

リストや辞書と比較して、次のような特徴を持っています。

  • ユニーク性: セットの要素はすべてユニークであり、重複する要素は存在しません。
  • 順序なし: セットは要素の順序を保持しません。そのため、インデックスを使って要素にアクセスすることはできません。
  • ミュータブル: セットは可変(mutable)なデータ構造であり、要素の追加や削除が可能です。
  • ハッシュ可能な要素: セットの要素はハッシュ可能でなければならず、リストや辞書のようなミュータブルなオブジェクトはセットの要素にできません。

このように、セットは順序を気にせず、重複を許さなデータ構造を扱いたいときに最適です。

セットの作成方法

Pythonでセットを作る方法は、大きく2つあります。

  • 波括弧 {} を使う
  • set() 関数を使う

それぞれでセットを作成した例です。

# 波括弧を使ってセットを作成
fruits = {"apple", "banana", "banana", "orange"}
print(fruits)  # 出力例: {'banana', 'orange', 'apple'}

# set() 関数を使ってセットを作成
numbers = set([1, 2, 3, 4, 4, 5])
print(numbers)  # 出力例: {1, 2, 3, 4, 5}

最初の例では、fruits という変数に "apple", "banana", "orange" を含むセットを作成しました。出力の順序は保証されないため、コードに書いた順番で表示されるとは限りません。

次の例では、set()関数を使い、リスト [1, 2, 3, 4, 5] をセットに変換しました。

リストに重複があっても、セットに変換した時点で自動的に重複が削除されるのが大きなメリットです。

まとめ

Pythonのセットは、次のような場面で大きな力を発揮します。

  • 重複を排除したいとき
  • 順序に依存しないデータ管理をしたいとき
  • 複数のデータ集合を比較したいとき

次は、セットの操作方法について、学習します。

出力結果: