Pythonのセットで重複を削除する方法(set()の活用)初心者向け完全ガイド
生徒
「Pythonで同じデータが何回も出てくるのを一発で消す方法ってありますか?」
先生
「Pythonではset()という機能を使えば、リストなどの中にある重複(同じ値)を簡単に削除できますよ。」
生徒
「重複ってそもそもどういう意味ですか?」
先生
「重複とは、同じ値や内容が繰り返し出てくることです。例えば、友達の名前を名簿に書いたら、同じ名前が2回入ってしまうような状態です。」
生徒
「なるほど!ではset()を使うと、それを自動で消してくれるんですね?」
先生
「そうです。それでは、set()の基本から見ていきましょう!」
1. Pythonのset()とは?初心者にもわかる基本
Python(パイソン)のset()は「集合(しゅうごう)」を作るための機能です。集合とは、数学で習った「同じものを含まないグループ」のことです。つまり、set()を使えば、自動的に同じ値が削除され、1つずつだけが残ります。
例えば、買い物リストに「りんご、みかん、りんご」と書いてあると、set()は重複している「りんご」を1つにまとめてくれます。
fruits = ["りんご", "みかん", "りんご"]
unique_fruits = set(fruits)
print(unique_fruits)
{'みかん', 'りんご'}
このように、set()を使うと重複がなくなり、スッキリとしたデータになります。
2. なぜset()で重複が削除されるのか
set()は、もともと「同じ値を持てない」というルールがあります。これは、名前の名簿や会員番号のリストのように、一人一人が必ず違う番号を持つ仕組みに似ています。そのため、同じ値が入ろうとすると、自動的に1つだけにまとめられます。
この特性を利用すると、面倒な「同じ値を探して削除する」作業を自分でしなくても済みます。
3. リストに戻す方法
set()を使うと、データは「集合型」という特殊な形に変わります。もし再びリストとして使いたい場合は、list()を使って変換します。
fruits = ["りんご", "みかん", "りんご"]
unique_fruits = list(set(fruits))
print(unique_fruits)
['みかん', 'りんご']
この方法を使えば、重複を削除した後も、リストとしてデータを扱えます。
4. 順番を保って重複を削除する方法
実はset()は順番を保証しません。そのため、元の並び順を保ちたい場合は少し工夫が必要です。以下のように、for文(繰り返し処理)を使うことで、順番を保ちながら重複を削除できます。
fruits = ["りんご", "みかん", "りんご", "バナナ"]
unique_fruits = []
for fruit in fruits:
if fruit not in unique_fruits:
unique_fruits.append(fruit)
print(unique_fruits)
['りんご', 'みかん', 'バナナ']
5. 文字列の重複を削除する応用例
set()はリストだけでなく、文字列の重複も削除できます。例えば「banana」という文字列から重複する文字を消すこともできます。
text = "banana"
unique_chars = set(text)
print(unique_chars)
{'a', 'n', 'b'}
ただし、この場合も順番は保証されません。順番を保ちたい場合は、先ほどのリストの方法を応用します。
6. プログラミング初心者が覚えておくべきポイント
set()は「重複を削除する」最も簡単な方法- 順番が必要な場合はリスト変換や
for文を使う - 文字列や数字、あらゆるデータに使える
特にデータ整理や検索機能を作るときに役立ちます。Python初心者でも、set()を覚えればデータの重複に悩まされることが少なくなります。