<一覧に戻る

セットの定義と特徴

Pythonにおけるセット(set)は、重複しない要素の集まりを表すデータ構造です。数学の集合と同様に、セットはユニークなアイテムのコレクションとして機能します。ここでは、セットの定義、特徴、および基本的な操作方法について学んでいきます。

セットの特徴

  1. ユニーク性: セットの要素はすべてユニークであり、重複する要素は存在しません。
  2. 順序なし: セットは要素の順序を保持しません。そのため、インデックスを使って要素にアクセスすることはできません。
  3. ミュータブル: セットは可変(mutable)なデータ構造であり、要素の追加や削除が可能です。
  4. ハッシュ可能な要素: セットの要素はハッシュ可能でなければならず、リストや辞書のようなミュータブルなオブジェクトはセットの要素にできません。

セットの作成

セットは波括弧 {} を使って作成することができます。また、set() 関数を使用してもセットを作成できます。

サンプルコード

以下にセットの基本的な作成方法を示します。

# 波括弧を使ってセットを作成
fruits = {"apple", "banana", "orange"}
print(fruits)  # 出力: {'banana', 'orange', 'apple'}

# set() 関数を使ってセットを作成
numbers = set([1, 2, 3, 4, 5])
print(numbers)  # 出力: {1, 2, 3, 4, 5}

コード解説

  • 最初の例では、fruits というセットを波括弧 {} を使って作成しました。出力はセットの要素を表示しますが、順序は保証されていません。
  • 次の例では、set() 関数を使ってリストからセットを作成しました。この場合も、重複する要素があれば自動で削除されます。

セットの操作

セットには、要素の追加や削除ができるメソッドがあります。ここでは主な操作について説明します。

要素の追加

要素をセットに追加するには、add() メソッドを使用します。

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

要素の削除

要素をセットから削除するには、remove() または discard() メソッドを使用します。

  • remove() メソッドは、指定した要素が存在しない場合にエラーを発生させます。
  • discard() メソッドは、要素が存在しなくてもエラーを発生させません。
# remove() メソッドを使った削除
fruits.remove("banana")
print(fruits)  # 出力: {'grape', 'orange', 'apple'}

# discard() メソッドを使った削除
fruits.discard("kiwi")  # 存在しない要素でもエラーは発生しない
print(fruits)  # 出力: {'grape', 'orange', 'apple'}

コード解説

  • add() メソッドを使って新しい要素「grape」をセットに追加しました。出力には追加された要素が含まれています。
  • remove() メソッドを使って「banana」を削除しましたが、存在しない要素を削除しようとするとエラーが発生します。一方、discard() メソッドはエラーを発生させません。

次に、セットの結合について見ていきましょう。

出力結果: