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()
を活用してみてください。