カテゴリ: Python 更新日: 2025/06/10

Pythonのセット(set)の使い方!重複を排除する集合型の活用方法

Pythonのセット(set)の使い方!重複を排除する集合型の活用方法
Pythonのセット(set)の使い方!重複を排除する集合型の活用方法

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

生徒

「Pythonで同じ値が何度も入ってしまうのを防ぐにはどうすればいいですか?」

先生

「そんなときには、set(セット)というデータ型が便利です。同じ値を自動的に省いてくれる特徴がありますよ。」

生徒

「へぇー!リストとかタプルとはどう違うんですか?」

先生

「それでは、Pythonのセット型の使い方を、リストとの違いも含めて丁寧に解説していきましょう!」

-

1. Pythonのset(セット)とは?

1. Pythonのset(セット)とは?
1. Pythonのset(セット)とは?

Pythonのセット(set)型は、重複する値を自動的に取り除く集合型のデータ構造です。数学の「集合」と似ていて、同じ値は1つしか存在できません。

セットは、中かっこ {} を使って作成します。


colors = {"赤", "青", "赤", "緑", "青"}
print(colors)

{'緑', '赤', '青'}

このように、重複した「赤」や「青」が1つにまとめられています。Pythonのセットは、自動的に重複を排除してくれます。

2. リストやタプルとの違い

2. リストやタプルとの違い
2. リストやタプルとの違い

Pythonのリストやタプルは、同じ値を何回でも入れられますが、セットは同じ値を1回だけしか持てないのが大きな違いです。

また、セットは順番を持たないため、インデックス(番号)でのアクセスはできません。


colors = {"赤", "青", "緑"}
print(colors[0])  # エラーになります

TypeError: 'set' object is not subscriptable

セットの中の値を順番に使いたい場合は、forループで繰り返す方法を使います。

3. set型の作り方と基本操作

3. set型の作り方と基本操作
3. set型の作り方と基本操作

セットを作るには{}を使うか、set()関数を使います。


nums = set([1, 2, 2, 3, 4])
print(nums)

{1, 2, 3, 4}

このように、リストをset()で変換することで、重複を取り除いたセットを作れます。

4. setに要素を追加する(add)

4. setに要素を追加する(add)
4. setに要素を追加する(add)

セットに新しい要素を追加したい場合は、add()メソッドを使います。


colors = {"赤", "青"}
colors.add("黄色")
print(colors)

{'赤', '青', '黄色'}

すでにある値を追加しても、重複は無視されます。

-

5. setから要素を削除する(remove/discard)

5. setから要素を削除する(remove/discard)
5. setから要素を削除する(remove/discard)

セットから特定の値を削除するにはremove()discard()を使います。


colors = {"赤", "青", "緑"}
colors.remove("青")
print(colors)

{'赤', '緑'}

remove()は存在しない値を消そうとするとエラーになりますが、discard()はエラーにならずにスルーします。

6. セットの重複排除の活用例

6. セットの重複排除の活用例
6. セットの重複排除の活用例

たとえば、名前の一覧に重複があった場合、セットを使えば簡単に重複を消せます。


names = ["さとし", "ゆうこ", "さとし", "たけし", "ゆうこ"]
unique_names = set(names)
print(unique_names)

{'たけし', 'さとし', 'ゆうこ'}

簡単に一意な値だけを取り出すことができるので、データ整理に便利です。

7. 集合演算で差・共通点・和を計算しよう

7. 集合演算で差・共通点・和を計算しよう
7. 集合演算で差・共通点・和を計算しよう

Pythonのセットでは、数学で習う「集合」と同じように、集合演算ができます。

  • 和集合(どちらかにある値)→ | または union()
  • 積集合(両方にある値)→ & または intersection()
  • 差集合(一方にしかない値)→ - または difference()

a = {1, 2, 3}
b = {3, 4, 5}
print(a | b)  # 和集合
print(a & b)  # 積集合
print(a - b)  # 差集合

{1, 2, 3, 4, 5}
{3}
{1, 2}

このように、セットを使うと複雑なデータの比較や分析も簡単にできます。

8. セットの注意点と使いどころ

8. セットの注意点と使いどころ
8. セットの注意点と使いどころ

Pythonのセットは便利ですが、次のような注意点があります。

  • 順番を持たないのでcolors[0]のようなアクセスはできない
  • リストや辞書のようにソートされていない
  • 中に入れられるのは変更できないデータ型のみ(リストなどは入れられない)

セットは、「重複をなくしたい」「データの中身を比較したい」「同じ値を1つだけ残したい」といったときにとても役立ちます。

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

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

関連記事:
カテゴリの一覧へ
新着記事
Pythonのエラーメッセージの読み方!よくあるエラーと解決方法
PHPの関数(function)の基本を完全ガイド!初心者でもわかる使い方
Pythonの条件式でNoneを判定する方法!is None vs == None の違い
Pythonのpass文とは?一時的なコードブロックをスキップする方法
人気記事
No.1
Java&Spring記事人気No1
PHPの配列をソートする方法!sort, rsort, asort, ksortの使い方を丁寧に解説します!
No.2
Java&Spring記事人気No2
PHPの関数(function)の基本を完全ガイド!初心者でもわかる使い方
No.3
Java&Spring記事人気No3
PHPとは?初心者向けにわかりやすく解説
No.4
Java&Spring記事人気No4
PHP の文字列の基本操作(連結・切り出し・長さ)の使い方
-