Python

【Python】第1章第9回:集合(set)の基本操作

Pythonの集合(set)は、重複を許さないデータ型です。本記事では、集合の基本操作から応用的な使い方までを解説します。

0. 記事の概要

この記事を読むメリット

  • 集合の基本操作を理解:重複を取り除いたデータ管理方法を学べます。
  • 応用的な操作を習得:和集合や差集合などの集合演算を理解できます。
  • 実用的なスキルを取得:集合を活用したデータ処理が可能になります。

この記事で学べること

  • 集合の基本操作(作成、追加、削除、確認)
  • 集合の応用例(和集合、積集合、差集合)
  • 集合を使った実用的なプログラムの作成

1. 集合の基本操作

1.1 集合の作成

集合は、波括弧({})を使用して作成します。

# 集合の作成
fruits = {"apple", "banana", "cherry"}
print(fruits)  # 出力: {'apple', 'banana', 'cherry'}
動作解説
  1. 集合内の要素は重複しません。
  2. 順序は保証されないため、出力順は一定ではありません。

1.2 要素の追加と削除

集合に要素を追加するにはadd()、削除するにはremove()discard()を使用します。

# 要素の追加と削除
fruits.add("orange")
print(fruits)  # 出力: {'apple', 'banana', 'cherry', 'orange'}

fruits.remove("banana")
print(fruits)  # 出力: {'apple', 'cherry', 'orange'}
動作解説
  1. add(): 新しい要素を追加します。
  2. remove(): 指定した要素を削除します。存在しない要素を削除しようとするとエラーが発生します。

2. 集合の応用

2.1 集合演算

集合では、以下のような演算が可能です。

  • 和集合: |またはunion()
  • 積集合: &またはintersection()
  • 差集合: -またはdifference()
# 集合演算
set1 = {1, 2, 3}
set2 = {3, 4, 5}

union = set1 | set2  # 和集合
print(union)  # 出力: {1, 2, 3, 4, 5}

intersection = set1 & set2  # 積集合
print(intersection)  # 出力: {3}

difference = set1 - set2  # 差集合
print(difference)  # 出力: {1, 2}
動作解説
  1. |: 和集合を取得します。
  2. &: 積集合を取得します。
  3. -: 差集合を取得します。

3. 実践例:集合を活用したプログラム

リスト内の重複を取り除き、ユニークな要素を表示するプログラムを作成します。

# リスト内の重複を削除
items = ["apple", "banana", "apple", "cherry", "banana"]
unique_items = set(items)
print(unique_items)  # 出力: {'apple', 'banana', 'cherry'}
動作解説
  1. リストを集合に変換することで重複を自動的に排除します。
  2. 結果は集合として表示されますが、リストに戻すことも可能です。

4. 練習問題

以下の課題に挑戦してみましょう。

  1. 2つの集合の和集合、積集合、差集合をそれぞれ求めるプログラムを作成してください。
  2. リストを集合に変換し、重複を取り除いた後、再度リストに変換して出力してください。

5. 練習問題の解答と解説

問1の解答例

# 2つの集合の演算
set1 = {1, 2, 3}
set2 = {3, 4, 5}

print(set1 | set2)  # 和集合
print(set1 & set2)  # 積集合
print(set1 - set2)  # 差集合

問2の解答例

# 重複を取り除いたリスト
items = ["apple", "banana", "apple", "cherry", "banana"]
unique_list = list(set(items))
print(unique_list)  # 出力: ['apple', 'banana', 'cherry']

6. まとめ

Pythonの集合(set)の基本操作と応用を学びました。集合の特性を活かすことで、データの重複を排除し、効率的なデータ操作が可能になります。これを基に、さらに実践的なプログラムに挑戦してください。