Pythonのセットの基本操作(追加・削除・更新の方法)初心者向け完全ガイド
生徒
「Pythonでセットっていう機能を使うと重複が消せるって聞いたんですが、どうやってデータを追加したり削除したりするんですか?」
先生
「セットは重複をなくすだけでなく、後からデータを追加したり、いらないものを削除したり、まとめて更新することもできますよ。」
生徒
「セットってリストと同じように順番がありますか?」
先生
「セットは順番を保証しないという特徴があります。その代わり、操作がとても速く、重複を気にせず使えるのが強みです。」
生徒
「では具体的に、追加・削除・更新の方法を教えてください!」
1. Pythonのセット(set)とは?重複を防ぐ便利な仕組み
Python(パイソン)のset(セット)は、「重複を許さない、データの詰め合わせ」のようなものです。リスト(list)と似ていますが、最大の違いは「同じデータを2つ以上持てない」ことと「順番が決まっていない」という点にあります。
例えば、アンケートの回答から重複を削って「何種類の回答があったか」を知りたい時や、特定のデータが含まれているかを高速に判定したい時に非常に役立ちます。プログラミング未経験の方でも、「ユニークな(唯一の)値だけを集めるバケツ」とイメージすると分かりやすいでしょう。
セットを作るには、波かっこ { } で囲むか、set() 関数を使用します。以下の簡単な例を見てみましょう。
# 重複したデータが入ったリストからセットを作る例
names = {"田中", "佐藤", "鈴木", "田中"}
# 「田中」が2つあっても、表示されるときは1つになります
print(names)
# 空のセットを作る場合は set() を使います({}だけだと辞書型になるため)
empty_set = set()
{'佐藤', '鈴木', '田中'}
実行結果を見ると、2回入力した「田中」が1つにまとめられていますね。また、実行するたびに出力される順番が変わるのもセットの特徴です。この「自動で重複を消してくれる機能」こそが、セットを使う最大のメリットです。
2. セットにデータを追加する方法
セットに新しい要素を追加するにはadd()メソッドを使います。例えば、新しく「ぶどう」を追加したい場合は以下のようにします。
fruits = {"りんご", "みかん"}
fruits.add("ぶどう")
print(fruits)
{'りんご', 'ぶどう', 'みかん'}
同じ要素を追加しようとしても、セットは自動で重複を無視します。
3. 複数の要素をまとめて追加(更新)する方法
一度に複数の要素を追加したい場合はupdate()メソッドを使います。これはリストや他のセットからデータを取り込み、まとめてセットに追加できます。
fruits = {"りんご", "みかん"}
fruits.update(["バナナ", "もも"])
print(fruits)
{'りんご', 'バナナ', 'もも', 'みかん'}
4. セットから要素を削除する方法
セットから特定の要素を削除するには、remove()かdiscard()を使います。違いは、remove()は存在しない要素を削除しようとするとエラーになりますが、discard()はエラーにならず無視します。
fruits = {"りんご", "みかん", "バナナ"}
fruits.remove("みかん")
print(fruits)
{'りんご', 'バナナ'}
存在するかわからない要素を削除するならdiscard()がおすすめです。
5. 全ての要素を削除する方法
セットを空にしたい場合はclear()を使います。これにより、すべての要素が削除され、空のセットになります。
fruits = {"りんご", "みかん"}
fruits.clear()
print(fruits)
set()
6. セット操作の応用例
セットは追加や削除だけでなく、複数のセットを組み合わせたり、共通部分だけを取り出すこともできます。これを「集合演算」と呼びます。
例えば、Aさんが好きなフルーツとBさんが好きなフルーツを比べて、共通して好きなものを見つけられます。
a = {"りんご", "みかん", "バナナ"}
b = {"バナナ", "もも"}
print(a & b) # 共通部分
{'バナナ'}
7. プログラミング初心者が覚えるべきポイント
add()で1つ追加、update()で複数追加remove()とdiscard()の違いを理解するclear()で全削除できる- 集合演算を使うとデータ比較が簡単
Pythonのセットは、データ整理や検索、比較にとても便利な機能です。初心者のうちから使いこなせると、効率的なプログラムが書けるようになります。