Python|set()関数の使い方

1. はじめに

Pythonを学び始めると、リストや辞書などのデータ型に触れる機会が多くあります。その中でもset()関数」は、データから重複を取り除いたり、集合演算を行ったりする際に非常に便利な機能です。
本記事では、Python初心者〜中級者を対象に、set()関数の使い方を基本から応用まで解説します。コード例と実行結果を交えて、実務でも役立つ知識をわかりやすく説明します。

 

2. Python|set()関数の基本解説

まずは、set()関数の基本的な役割を確認しましょう。set()はイテラブル(リストやタプル、文字列など)を引数に取り、重複を排除した集合型(setオブジェクト)を作成します。

2-1. set()の基本的な使い方

# リストから集合を作成
fruits = ["apple", "banana", "apple", "orange"]
unique_fruits = set(fruits)

print(unique_fruits)

実行結果:

{'orange', 'banana', 'apple'}

このように、リスト内で重複している “apple” が削除され、ユニークな要素だけが残ることが確認できます。

2-2. 空のsetを作成する方法

空の集合を作成する際には、{}ではなくset()を使う必要があります。{}は空の辞書を意味するため、混同に注意してください。

# 空の集合を作成
empty_set = set()
print(type(empty_set))

実行結果:

<class 'set'>

 

3. Python|set()関数のよくある使い方・応用例

ここでは、実務や学習でよく使うset()の活用方法を紹介します。

3-1. リストから重複を削除する

最も代表的な用途はリストの重複削除です。

numbers = [1, 2, 2, 3, 4, 4, 5]
unique_numbers = list(set(numbers))  # 再びリストに戻す

print(unique_numbers)

実行結果:

[1, 2, 3, 4, 5]

3-2. 集合演算(和集合・積集合・差集合)

集合は数学的な演算が可能です。Pythonのset型でも同様に使えます。

A = set([1, 2, 3, 4])
B = set([3, 4, 5, 6])

print("和集合:", A | B)   # 両方の要素を含む
print("積集合:", A & B)   # 共通部分
print("差集合:", A - B)   # AにあってBにない

実行結果:

和集合: {1, 2, 3, 4, 5, 6}
積集合: {3, 4}
差集合: {1, 2}

3-3. リストの共通要素を抽出する

例えば、2つのリストの共通要素を抽出するのにset()は便利です。

list1 = ["apple", "banana", "orange"]
list2 = ["banana", "kiwi", "apple"]

common = set(list1) & set(list2)
print(common)

実行結果:

{'banana', 'apple'}

3-4. 重複チェックに利用する

入力データに重複があるかどうかを判定する際にも便利です。

data = [1, 2, 3, 4, 4, 5]
if len(data) != len(set(data)):
    print("重複があります")
else:
    print("重複はありません")

実行結果:

重複があります

 

4. Python|set()関数の注意点・エラー対策

set()を使う際には、以下の点に注意が必要です。

4-1. 順序が保持されない

setは順序を持たないため、要素の並び順が保証されません。順序が重要な場合はリストや辞書を利用しましょう。

4-2. setに格納できるのはハッシュ可能なオブジェクト

リストや辞書のように変更可能なオブジェクトはsetに格納できません。

# リストをそのまま追加するとエラーになる
my_set = set()
my_set.add([1, 2, 3])

実行結果:

TypeError: unhashable type: 'list'

4-3. 空集合の作成で{}を使うと辞書になる

初心者がよく間違えるのが{}の使い方です。{}は辞書を意味するため、空集合を作りたいときは必ずset()を使いましょう。

 

5. まとめ

本記事では、Pythonのset()関数の使い方について解説しました。主なポイントは以下の通りです。

  • set()は重複を取り除いた集合を作成できる
  • 集合演算(和集合・積集合・差集合)が可能
  • 重複チェックや共通要素抽出に便利
  • 順序が保持されない点や格納できる型に注意が必要

実務では、データのユニーク化やリスト間比較に役立ちます。学習のコツとしては、数学的な集合のイメージと合わせて理解するとスムーズです。ぜひ、自分のコードでもset()を活用してみてください。

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