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文の基礎も合わせて読むと理解が一気に広がります。

コメント