集合への要素の追加と集合からの要素の削除

作成済みの集合へ要素を追加したり要素を削除する方法について解説します。なお要素を追加したり削除したりできるのはミュータブルな set 型だけです。イミュータブルな frozenset 型ではできません。

(Last modified: )

集合に要素を追加する

集合に新しい要素を追加する方法です。 set 型で利用可能な add メソッドを使用します。

集合.add(値)

引数に指定した値を持つ要素を集合に追加します。集合では要素に順番はないので、どこに追加されるかは分かりません。

colorset = {"Red", "Green", "Blue"}
colorset.add("White")

print(colorset)
>> {'Green', 'White', 'Blue', 'Red'}
サンプルコード

次のサンプルを見てください。

colorset = {"Blue", "Red", "Green"}

# "White" を追加
colorset.add("White")
print(colorset)
>> {'Green', 'White', 'Blue', 'Red'}

# "Black" を追加
colorset.add("Black")
print(colorset)
>> {'Black', 'Green', 'Blue', 'Red', 'White'}

add メソッドを使って集合に新しい要素を追加することができました。

集合から要素を削除する

集合から要素を削除する方法です。 set 型で利用可能な remove メソッド、 discard メソッド、 pop メソッドを使うことで要素を削除することができます。

最初に set 型で利用可能な remove メソッドを使用する方法です。

集合.remove(値)

引数に指定した値を持つ要素を集合から削除します。引数に指定した値が集合に存在しない場合には KeyError エラーが発生します。

colorset = {"Red", "Green", "Blue"}

colorset.remove("Green")
print(colorset)
>> {'Blue', 'Red'}

colorset.remove("White")

>> Traceback (most recent call last):
>>   File "<stdin>", line 1, in <module>
>> KeyError: 'White'

次に set 型で利用可能な discard メソッドを使用する方法です。先ほどの remove メソッドを使い方はほぼ同じです。

集合.discard(値)

引数に指定した値を持つ要素を集合から削除します。 remove メソッドと異なり、引数に指定した値が集合に存在しない場合にもエラーとはなりません。

colorset = {"Red", "Green", "Blue"}

colorset.discard("Green")
print(colorset)
>> {'Blue', 'Red'}

# 削除しようとした値が存在しない場合でもエラーにはならない
colorset.discard("White")
print(colorset)
>> {'Blue', 'Red'}

最後に set 型で利用可能な pop メソッドを使用する方法です。

val = 集合.pop()

pop メソッドの場合は集合の中のいずれか一つの要素を削除し、その要素を返します。どの要素を削除するかは指定することができません、

colorset = {"Red", "Green", "Blue"}

color = colorset.pop()
print(color)
>> Green

print(colorset)
>> {'Blue', 'Red'}

color = colorset.pop()
print(color)
>> Blue

print(colorset)
>> {'Red'}

集合からすべての要素を削除する

集合からすべての要素を削除する方法です。 set 型で利用可能な clear メソッドを使用します。

集合.clear()

集合からすべての要素を削除します。

colorset = {"Red", "Green", "Blue"}

colorset.clear()
print(colorset)
>> set()

全ての要素を削除しても空の集合となるだけで集合そのものは削除されません。

-- --

集合に新しい要素を追加する方法および集合から要素を削除する方法について解説しました。

( Written by Tatsuo Ikura )

Profile
profile_img

著者 / TATSUO IKURA

プログラミングや開発環境構築の解説サイトを運営しています。