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のセットにおける次の基本操作を学びました。
セットは、重複しないデータを簡単に扱える便利なデータ構造です。 データ分析や検索機能など、さまざまな場面で役立ちます。
次回は、セットの演算(和集合、積集合、差集合)を詳しく解説します。これらをマスターすれば、Pythonでのデータ処理がさらに効率的になります。