PythonのSet(集合)をやさしく解説|重複を排除してデータを管理する方法
この記事でわかること
- PythonのSetとは何か
- Listとの違いと使いどころ
- Setの作り方と基本操作
- 集合演算(和・積・差)でデータを効率的に処理する方法
- 知っておきたい注意点
Setとは
Set(集合)とは、重複しない値をまとめて管理できるデータの箱です
fruits = {"りんご", "バナナ", "みかん"}- Listと似ていますが、同じ値は1つしか保持されません
- 順序は保持されないので、インデックスでアクセスはできません
Setの基本操作
作り方
my_set = {1, 2, 3, 3, 4}
print(my_set) # {1, 2, 3, 4}重複した値は自動で削除されます
要素の追加
my_set.add(5)
print(my_set)要素の削除
my_set.remove(2) # 存在しない場合はエラー
my_set.discard(10) # 存在しなくてもエラーにならない集合演算
Setは数学の集合のように、和・積・差 の演算ができます
a = {1, 2, 3}
b = {2, 3, 4}- 和(union): 両方にある全ての要素
print(a | b) # {1, 2, 3, 4}- 積(intersection): 両方に共通する要素
print(a & b) # {2, 3}- 差(difference): aにあってbにない要素
print(a - b) # {1}このように、データの重複を気にせず操作できるのがSetの強みです
繰り返し処理との組み合わせ
Setもfor文で要素を順番に処理できます
fruits = {"りんご", "バナナ", "みかん"}
for fruit in fruits:
print(fruit)順序は保証されませんが、「同じものは必ず1回だけ処理したい」場合に便利です
注意点
- Setは順序がないので、インデックスでアクセスできません
- 要素としてリストや辞書を入れることはできません(変更可能なものは不可)
- 重複は自動で排除されるので、データの整理に便利です
まとめ
- Setは重複を許さず、順序を持たないデータの箱です
- addやremoveで要素を追加・削除できます
- 和・積・差の集合演算でデータを効率的に処理できます
- for文で順番に処理することも可能です
- Listでは面倒な重複チェックや存在確認が簡単にできます
これで、データの扱い方の幅がさらに広がります
次は 辞書(Dictionary) を学ぶと、キーと値でデータを管理できるようになり、もっと複雑な情報も整理できるようになります