カテゴリ: Python 更新日: 2026/01/06

Pythonのセットで重複を削除する方法(set()の活用)初心者向け完全ガイド

Pythonのセットで重複を削除する方法(set()の活用)
Pythonのセットで重複を削除する方法(set()の活用)

先生と生徒の会話形式で理解しよう

生徒

「Pythonで同じデータが何回も出てくるのを一発で消す方法ってありますか?」

先生

「Pythonではset()という機能を使えば、リストなどの中にある重複(同じ値)を簡単に削除できますよ。」

生徒

「重複ってそもそもどういう意味ですか?」

先生

「重複とは、同じ値や内容が繰り返し出てくることです。例えば、友達の名前を名簿に書いたら、同じ名前が2回入ってしまうような状態です。」

生徒

「なるほど!ではset()を使うと、それを自動で消してくれるんですね?」

先生

「そうです。それでは、set()の基本から見ていきましょう!」

-

1. Pythonのset()とは?初心者にもわかる基本

1. Pythonのset()とは?初心者にもわかる基本
1. Pythonのset()とは?初心者にもわかる基本

Python(パイソン)のset()は「集合(しゅうごう)」を作るための機能です。集合とは、数学で習った「同じものを含まないグループ」のことです。つまり、set()を使えば、自動的に同じ値が削除され、1つずつだけが残ります。

例えば、買い物リストに「りんご、みかん、りんご」と書いてあると、set()は重複している「りんご」を1つにまとめてくれます。


fruits = ["りんご", "みかん", "りんご"]
unique_fruits = set(fruits)
print(unique_fruits)

{'みかん', 'りんご'}

このように、set()を使うと重複がなくなり、スッキリとしたデータになります。

2. なぜset()で重複が削除されるのか

2. なぜset()で重複が削除されるのか
2. なぜset()で重複が削除されるのか

set()は、もともと「同じ値を持てない」というルールがあります。これは、名前の名簿や会員番号のリストのように、一人一人が必ず違う番号を持つ仕組みに似ています。そのため、同じ値が入ろうとすると、自動的に1つだけにまとめられます。

この特性を利用すると、面倒な「同じ値を探して削除する」作業を自分でしなくても済みます。

3. リストに戻す方法

3. リストに戻す方法
3. リストに戻す方法

set()を使うと、データは「集合型」という特殊な形に変わります。もし再びリストとして使いたい場合は、list()を使って変換します。


fruits = ["りんご", "みかん", "りんご"]
unique_fruits = list(set(fruits))
print(unique_fruits)

['みかん', 'りんご']

この方法を使えば、重複を削除した後も、リストとしてデータを扱えます。

4. 順番を保って重複を削除する方法

4. 順番を保って重複を削除する方法
4. 順番を保って重複を削除する方法

実はset()は順番を保証しません。そのため、元の並び順を保ちたい場合は少し工夫が必要です。以下のように、for文(繰り返し処理)を使うことで、順番を保ちながら重複を削除できます。


fruits = ["りんご", "みかん", "りんご", "バナナ"]
unique_fruits = []
for fruit in fruits:
    if fruit not in unique_fruits:
        unique_fruits.append(fruit)
print(unique_fruits)

['りんご', 'みかん', 'バナナ']
-

5. 文字列の重複を削除する応用例

5. 文字列の重複を削除する応用例
5. 文字列の重複を削除する応用例

set()はリストだけでなく、文字列の重複も削除できます。例えば「banana」という文字列から重複する文字を消すこともできます。


text = "banana"
unique_chars = set(text)
print(unique_chars)

{'a', 'n', 'b'}

ただし、この場合も順番は保証されません。順番を保ちたい場合は、先ほどのリストの方法を応用します。

6. プログラミング初心者が覚えておくべきポイント

6. プログラミング初心者が覚えておくべきポイント
6. プログラミング初心者が覚えておくべきポイント
  • set()は「重複を削除する」最も簡単な方法
  • 順番が必要な場合はリスト変換やfor文を使う
  • 文字列や数字、あらゆるデータに使える

特にデータ整理や検索機能を作るときに役立ちます。Python初心者でも、set()を覚えればデータの重複に悩まされることが少なくなります。

まとめ

まとめ
まとめ

setを使った重複削除の考え方を振り返る

この記事では、Pythonのsetを使って重複データを削除する方法について、初心者向けに基礎から応用までを順番に解説してきました。 プログラミングを始めたばかりの頃は、リストの中に同じ値が何度も入ってしまい、 どうやって整理すればよいのか分からずに悩むことがよくあります。 そのような場面で活躍するのが、Pythonの集合型であるsetです。

setは「同じ値を持てない」という性質を持っているため、 リストや文字列をsetに変換するだけで自動的に重複が削除されます。 自分でfor文を書いて同じ値を探し、条件分岐で削除するといった複雑な処理をしなくても、 シンプルな書き方でデータを整理できる点が大きな魅力です。 Pythonでデータ処理を行う上で、setは非常に基本でありながら実用性の高い機能だと言えます。

順番と重複削除をどう考えるか

一方で、setには順番を保持しないという特徴があります。 そのため、単純にsetを使うと、元のリストの並び順が変わってしまうことがあります。 データの順番が重要な場面では、setだけに頼らず、 for文とリストを組み合わせて順番を保ちながら重複を削除する方法を選ぶ必要があります。

このように、setは万能ではありませんが、 「重複をなくしたい」「同じ値が含まれているかを判定したい」といった目的には非常に向いています。 状況に応じて、setを使うのか、リスト処理を使うのかを判断できるようになることが、 Python初心者から一歩成長するための大切なポイントです。

まとめとしてのサンプルプログラム


numbers = [1, 2, 3, 2, 4, 1, 5]

unique_numbers = list(set(numbers))
print(unique_numbers)

ordered_unique_numbers = []
for n in numbers:
    if n not in ordered_unique_numbers:
        ordered_unique_numbers.append(n)

print(ordered_unique_numbers)

このサンプルでは、setを使って一気に重複を削除する方法と、 for文を使って順番を保ちながら重複を削除する方法の両方を確認できます。 実際のプログラムでは、データの性質や目的に合わせて、 どちらの方法が適しているかを選ぶことが重要です。

先生と生徒の振り返り会話

生徒

「setを使うと、こんなに簡単に重複を消せるんですね。 今までfor文で一つ一つチェックしていたので、すごく楽に感じました」

先生

「そうですね。setは重複削除の定番です。 Pythonでは、目的に合った型を選ぶことで、コードが一気に分かりやすくなります」

生徒

「順番が変わることもある、という点も理解できました。 状況によって使い分けるのが大事なんですね」

先生

「その通りです。 今回学んだsetの使い方は、データ整理や検索処理など、いろいろな場面で役立ちます。 ぜひ実際のコードでも積極的に使ってみてください」

コメント
コメント投稿は、ログインしてください

まだ口コミはありません。

関連記事:
カテゴリの一覧へ
新着記事
New1
PHP
PHP のフォームデータの受け取り($_POST, $_GET)を完全解説!初心者向けガイド
New2
PHP
PHPのスコープとは?グローバル・ローカル・スーパーグローバルを完全解説!
New3
PHP
PHPの演算子をやさしく解説!算術・比較・論理・ビット演算子の使い方
New4
PHP
PHP の変数とは?基本的な使い方とデータ型を徹底解説!
-
人気記事
No.1
Java&Spring記事人気No1
Python
Pythonで辞書のキー・値・アイテムを取得する方法(keys(), values())
No.2
Java&Spring記事人気No2
Python
Pythonで辞書のネスト構造(入れ子辞書)を扱う方法 初心者向け完全ガイド
No.3
Java&Spring記事人気No3
Python
Pythonでエラースタックトレースを表示・取得する方法を徹底解説!初心者向け例外処理入門
No.4
Java&Spring記事人気No4
Python
PythonでMySQLに接続する方法を完全解説!初心者でもわかるpymysqlの基本
No.5
Java&Spring記事人気No5
Python
PythonでExcelファイル(.xlsx)を操作する方法を徹底解説!初心者でもできるopenpyxl・pandasの使い方
No.6
Java&Spring記事人気No6
PHP
PHP の日付と時間の取得(date, time, strtotime)を完全解説!初心者でもわかる使い方
No.7
Java&Spring記事人気No7
PHP
PHPで画像ファイルをアップロードする方法を初心者向けに徹底解説!わかりやすい画像処理入門
No.8
Java&Spring記事人気No8
PHP
PHP のデータ型を完全ガイド!初心者でもわかる int, string, float, bool など
-
-