Pythonでデータを扱う際に、「重複のないデータ」を管理したいと思ったことはありませんか? 例えば、リストに同じ値が何度も出てくる場合、重複を取り除く処理が必要です。
そんなときに便利なのが、セット(set)です。
セットは、数学の集合の概念をそのままプログラミングで使えるデータ構造であり、ユニークな要素を簡単に管理できます。
Pythonのセットは、「重複しない要素の集まり」を表します。 つまり、同じ値を2回追加しても、セットの中では1回しか保持されません。
リストや辞書と比較して、次のような特徴を持っています。
このように、セットは順序を気にせず、重複を許さなデータ構造を扱いたいときに最適です。
Pythonでセットを作る方法は、大きく2つあります。
それぞれでセットを作成した例です。
# 波括弧を使ってセットを作成
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のセットは、次のような場面で大きな力を発揮します。
次は、セットの操作方法について、学習します。