Python セット要素の削除
1. 要素を削除する主なメソッド
セット(Set)から特定の項目を削除するには、remove() または discard() メソッドを使用します。この2つは「要素が存在しない時」の挙動が決定的に異なります。
1.1 remove() メソッド
指定した項目を削除します。もしその項目が存在しない場合、エラー(KeyError)が発生します。
thisset = {"apple", "banana", "cherry"}
thisset.remove("banana")
print(thisset)1.2 discard() メソッド
指定した項目を削除します。もしその項目が存在しなくても、エラーは発生せず、プログラムはそのまま続行されます。
thisset = {"apple", "banana", "cherry"}
thisset.discard("banana")
print(thisset)2. pop() メソッドによる削除
pop() メソッドを使用すると、要素を1つ削除できます。ただし、セットは順序がない(Unordered)ため、どの要素が削除されるかは完全にランダムです。
また、pop() は「削除された要素」を戻り値として返します。
例:ランダムに1つの要素を削除する
thisset = {"apple", "banana", "cherry"}
x = thisset.pop()
print(x) # 削除された項目
print(thisset) # 残ったセットエンジニアの注意点:
セットにおける pop() は、リストの pop()(末尾を消す)とは全く別物です。何が消えるか予測不能なので、特定のデータを取り扱う際には注意が必要です。
3. セットを空にする・削除する
中身をすべて消去したい、あるいは変数そのものを消し去りたい場合の方法です。
3.1 clear() メソッド
セット内のすべての要素を削除し、空のセットにします。
thisset = {"apple", "banana", "cherry"}
thisset.clear()
print(thisset) # 結果: set()3.2 del キーワード
セット(変数)そのものを完全に削除します。
thisset = {"apple", "banana", "cherry"}
del thisset
# これ以降に print(thisset) を実行するとエラーになります4. 削除メソッドの使い分けまとめ
| メソッド | 存在しない項目を指定した場合 | 戻り値 |
|---|---|---|
remove() | エラーになる | なし |
discard() | 何もしない(安全) | なし |
pop() | (空のセットならエラー) | 削除された要素 |
clear() | ― | なし |
実務では、「確実に存在しているはずのものを消したい(なければ異常事態)」なら remove() を、「あってもなくてもとりあえず消しておきたい」なら discard() を使うのがセマンティックで良いコードです。