Caution

お使いのブラウザはJavaScriptが実行できない状態になっております。
当サイトはWebプログラミングの情報サイトの為、
JavaScriptが実行できない環境では正しいコンテンツが提供出来ません。
JavaScriptが実行可能な状態でご閲覧頂くようお願い申し上げます。

Python辞典

  1. トップページ
  2. Python辞典
  3. セット.add() / セット.remove() / セット.discard()

セット.add() / セット.remove() / セット.discard()

セットへの要素の追加・削除を行うメソッドです。セットは重複のない要素の集合で、要素の有無を高速に確認できます。

構文
# 要素を追加します。
セット.add(要素)

# 要素を削除します(存在しない場合はエラー)。
セット.remove(要素)

# 要素を削除します(存在しない場合は何もしない)。
セット.discard(要素)

# ランダムな要素を取り出して削除します。
セット.pop()

# 全要素を削除します。
セット.clear()
メソッド一覧
メソッド概要
セット.add(要素)セットに要素を追加します。すでに同じ要素が存在する場合は何もしません。
セット.remove(要素)指定した要素をセットから削除します。要素が存在しない場合は『KeyError』が発生します。
セット.discard(要素)指定した要素をセットから削除します。要素が存在しない場合でもエラーにならず何もしません。
セット.pop()セットから任意の要素を1つ取り出して削除し、その要素を返します。セットが空の場合は『KeyError』が発生します。
セット.clear()セットのすべての要素を削除して空のセットにします。
セット.update(イテラブル)イテラブル(リスト・別のセットなど)の全要素を追加します。
サンプルコード
# セットを作成して要素を追加します。
fruits = {'apple', 'banana'}
fruits.add('cherry')
print(fruits)  # 『{'apple', 'banana', 'cherry'}』と出力されます(順序は不定)。

# 同じ要素を追加しても重複しません。
fruits.add('apple')
print(len(fruits))  # 『3』と出力されます。

# remove() で要素を削除します。
fruits.remove('banana')
print(fruits)  # 『{'apple', 'cherry'}』と出力されます。

# remove() で存在しない要素を削除するとエラーになります。
try:
    fruits.remove('grape')  # KeyError が発生します。
except KeyError as e:
    print(f'エラー: {e}')

# discard() は存在しなくてもエラーになりません。
fruits.discard('grape')  # エラーなし。
print(fruits)  # セットは変わらず出力されます。

# update() でリストの全要素を追加します。
new_items = ['mango', 'apple', 'kiwi']
fruits.update(new_items)
print(fruits)  # 重複なしで追加されます。

# pop() で任意の要素を取り出します。
removed = fruits.pop()
print(f'取り出した要素: {removed}')

# clear() で全要素を削除します。
fruits.clear()
print(fruits)  # 『set()』と出力されます(空のセット)。
概要

セットはリストと異なり順序を持たず、重複した要素を持てません。そのため要素の追加・削除・存在確認がリストよりも高速です。要素の削除には『remove()』と『discard()』の2種類があります。削除する要素が存在しない場合にエラーを発生させたいときは『remove()』を、エラーを無視したいときは『discard()』を使います。

セットは順序を保証しないため、『pop()』でどの要素が取り出されるかは不定です。特定の要素を取り出したい場合はセットではなくリストやデック(collections.deque)を使ってください。

セットの集合演算(和・積・差)は『セット.union() / セット.intersection() / セット.difference()』を参照してください。

記事の間違いや著作権の侵害等ございましたらお手数ですがまでご連絡頂ければ幸いです。