【完全攻略】Pythonの集合型(set)の使い方を徹底解説!初心者でもわかる基礎と応用

【完全攻略】Pythonの集合型(set)の使い方を徹底解説!初心者でもわかる基礎と応用 python

Pythonの学習を進めていくと「集合型(set)」というデータ型に出会います。リストやタプルと似ていますが、集合型ならではの便利な特徴があります。本記事では、Pythonの集合型の基本から応用テクニック、注意点までをわかりやすく解説します。

集合型(set)とは?

集合型(set)は、数学の「集合」と同じ考え方を持つデータ型です。リストのように複数の要素をまとめられますが、次のような特徴があります。

  • 要素の順序が保証されない
  • 同じ要素を重複して保持できない
fruits = {"apple", "banana", "orange", "apple"}
print(fruits)  # {"apple", "banana", "orange"}

このように、同じ要素を入れても自動的に重複が排除されるのがsetの強みです。特に重複を避けたいときに便利です。

リストやタプルとの違い

集合型はリストやタプルと似て見えますが、大きな違いがあります。まず、リストやタプルは要素の順番を保持しますが、setは順番が保証されません。また、リストは重複を許すのに対し、setは一意の要素だけを保持します。

lst = [1, 2, 2, 3]
print(lst)  # [1, 2, 2, 3]

st = {1, 2, 2, 3}
print(st)  # {1, 2, 3}

したがって、「順番を意識する必要がない」「重複をなくしたい」といった場合に集合型を活用すると便利です。

集合型の基本操作

集合型では、リストと同様に追加や削除といった操作が可能です。ただし、インデックスでの参照はできません。

animals = {"dog", "cat"}
animals.add("bird")
print(animals)  # {"dog", "cat", "bird"}

animals.remove("cat")
print(animals)  # {"dog", "bird"}

さらに、要素が含まれているかどうかを「in演算子」で確認することも可能です。

print("dog" in animals)  # True
print("cat" in animals)  # False

集合演算での活用

集合型の最大の特徴は、数学と同じ集合演算が使える点です。例えば、和集合・積集合・差集合などを簡単に表現できます。

a = {1, 2, 3}
b = {3, 4, 5}

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

このようにsetを使えば、データの重複を気にせず効率的に比較や統合が可能になります。

集合型の応用テクニック

リストから重複を除去

リストの中に重複する値がある場合、集合型に変換するだけでユニークな値の集合を得られます。

numbers = [1, 2, 2, 3, 4, 4, 5]
unique = set(numbers)
print(unique)  # {1, 2, 3, 4, 5}

必要であれば再びリストに変換して扱うことも可能です。

unique_list = list(unique)
print(unique_list)  # [1, 2, 3, 4, 5]

データ分析での利用

例えば、アンケートの回答データから「どの項目が選ばれたか」を集計する際にsetは便利です。重複を自動で排除するため、ユニークな値を効率よく抽出できます。

よくあるエラーと注意点

集合型を使う際に初心者がつまずきやすいのは、リストや辞書など「変更可能なオブジェクト」はsetに格納できないという点です。setの要素は「ハッシュ可能」である必要があります。

# NG:リストを要素にするとエラー
s = {[1, 2, 3]}  # TypeError

# OK:タプルならOK
s = {(1, 2, 3)}
print(s)  # {(1, 2, 3)}

また、setは順序を保証しないため、「何番目の要素」という考え方は通用しません。順序が必要な場合はリストやタプルを使いましょう。

Python初心者におすすめのサービス

「もっと実践的なコード例が欲しい」「自分の用途に合わせて教えてほしい」という方には、

テックアカデミーがおすすめです。

AI関連コースやシステム開発コース、アプリ開発コースなど豊富な学習が可能です。

さらに今なら無料相談でアマギフプレゼントもあるので、気軽にお申込みしてみてください。

テックアカデミー無料相談

また、プログラミング学習のプラットフォームとして、ココナラでは、現役エンジニアや経験豊富なPython講師が、あなたのレベルや目的に合わせてマンツーマンで指導してくれます。

書籍や動画ではカバーしきれない、あなた専用のカリキュラムで学べるのが最大の魅力。短時間で効率的にスキルを伸ばしたいなら、まずは出品者のサービスをチェックしてみましょう。

また、教える側としてスキルを活かして副業・独立を目指すことも可能です。
プログラミング経験やPythonの知識があれば、自分の得意分野をサービスとして出品し、全国の学習者から直接依頼を受けられます。オンラインで完結するため、場所や時間に縛られず、自分のペースで働けるのも大きなメリットです。

こちらのリンクから詳細をチェックしてみてください。

▶ ココナラを活用する

                           

まとめ

Pythonの集合型(set)は、重複を自動的に排除し、数学的な集合演算も簡単に扱える便利なデータ型です。リストやタプルと組み合わせて活用すると、効率的なデータ処理が可能になります。初心者はまず「順序がない」「重複しない」という特徴を意識すると理解が深まります。

さらに理解を深めたい方は、Pythonのlistの使い方を学ぶと、配列処理に役立ちます。またfor文やwhile文の基礎も合わせて読むと理解が一気に広がります。

参考:Python公式ドキュメント(set型)

コメント

タイトルとURLをコピーしました