<一覧に戻る

セットの操作(追加、削除、結合)

Pythonのセット(set)は、重複を許さないユニークな要素を扱うための便利なデータ構造です。 前回の記事で、セットの基本的な特徴や作り方を学びました。今回は、セットを操作する方法に焦点を当てます。

具体的には、次の操作を解説します。

  • 要素の追加
  • 要素の削除
  • 複数のセットを結合

これらの操作は、Pythonを使ったデータ処理や分析でよく使うため、しっかり理解しておきましょう。

セットの定義と作成方法

まずは、セットの基本的な作成方法を復習します。Pythonでは、波括弧 {} または set() 関数を使ってセットを定義します。

# セットの作成
fruits = {"apple", "banana", "orange"}
print(fruits)  # 出力: {'banana', 'orange', 'apple'}

ここでは、fruits という変数に "apple", "banana", "orange" の3つの要素を持つセットを作成しました。 注意したいのは、セットは順序を持たないということです。そのため、出力結果の並び順はコードに書いた順番と異なることがあります。

セットへの要素の追加

次に、既存のセットに新しい要素を追加する方法を見ていきます。Pythonでは、add() メソッドを使って簡単に要素を追加できます。

fruits = {"apple", "banana", "orange"}

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

このコードでは、fruits セットに "grape" を追加しました。 ポイントは、すでに同じ要素がセットにある場合、追加しても変化しないということです。 重複を許さないという特性があるため、ユニークな値の集合を保ちたい場合に非常に便利です。

セットからの要素の削除

続いて、セットから特定の要素を削除する方法です。削除には2つのメソッドがあります。

  • remove():指定した要素が存在しない場合、エラーが発生する
  • discard():指定した要素が存在しなくても、エラーが発生しない

それぞれの使い方はこちらです。

fruits = {"apple", "banana", "orange"}

# remove()メソッドを使った削除
fruits.remove("banana")
print(fruits)  # 出力: {'orange', 'apple'}

# discard()メソッドを使った削除
fruits.discard("orange")
print(fruits)  # 出力: {'apple'}

例えば、fruits.remove("banana")の場合、セットに "banana" が存在しないと KeyError が発生します。 一方、discard() は安全で、削除対象がなくても何も起きません。 そのため、存在確認をせずに削除したい場合は discard() を使うのがおすすめです。

セットの結合(複数のセットをまとめる方法)

複数のセットを一つにまとめたい場合は、update() または union() メソッドを使用します。 両者の違いは、update() は既存のセットを更新し、union() は新しいセットを返す点です。

fruits = {"apple", "grape"}

# 2つのセットを結合
berries = {"strawberry", "blueberry"}
fruits.update(berries)
print(fruits)  # 出力: {'grape', 'strawberry', 'blueberry', 'apple'}

# union()メソッドを使った結合
more_fruits = {"kiwi", "pineapple"}
combined_fruits = fruits.union(more_fruits)
print(combined_fruits)  # 出力: {'grape', 'strawberry', 'blueberry', 'apple', 'kiwi', 'pineapple'}

ここで、update() を使うと、fruits に berries の要素が追加され、元のセットが変更されます。 一方、union() は新しいセットを作成し、元のセットは変わりません。

まとめ

今回は、Pythonのセットにおける次の基本操作を学びました。

  • add():要素を追加
  • remove() / discard():要素を削除
  • update() / union():複数のセットを結合

セットは、重複しないデータを簡単に扱える便利なデータ構造です。 データ分析や検索機能など、さまざまな場面で役立ちます。

次回は、セットの演算(和集合、積集合、差集合)を詳しく解説します。これらをマスターすれば、Pythonでのデータ処理がさらに効率的になります。

出力結果: