辞書から要素を削除する

作成済みの辞書からキー指定して要素を削除したり、すべての要素を削除する方法について解説します。要素の削除には del 文や pop メソッドや popitem メソッドを使用します。またすべての要素を削除するには clear メソッドを使用します。

(Last modified: )

del文を使って要素を削除する

del 文はキーを指定して取り出した辞書の要素を削除します。次のように実行します。

del 辞書[キー]

キーを指定した辞書の要素を、 del 文を使って削除しています。

具体的には次のように記述します。

mydict = {"A":"Apple", "L":"Lemon", "O":"Orange"}
del mydict["L"]

print(mydict)
>> {'A': 'Apple', 'O': 'Orange'}

なお存在しないキーを指定すると KeyError エラーとなります。

mydict = {"A":"Apple", "L":"Lemon", "O":"Orange"}
del mydict["P"]

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

指定したキーの要素を削除する

del 文と同じように指定したキーの要素を辞書から削除する方法です。辞書型で利用可能な pop メソッドを使用します。

辞書.pop(key[, default])

pop メソッドは引数に指定したキーの要素を取得した上で辞書から削除します。指定したキーが存在しなかった場合は default が返されます( default は省略可能です)。

具体的には次のように記述します。

mydict = {"A":"Apple", "L":"Lemon", "O":"Orange"}

val = mydict.pop("L")
print(val)
>> Lemon

print(mydict)
>> {'A': 'Apple', 'O': 'Orange'}

default を指定せずに存在しないキーを指定すると KeyError エラーとなります。

mydict = {"A":"Apple", "L":"Lemon", "O":"Orange"}
val = mydict.pop("P")

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

default を指定した場合は、存在しないキーを指定してもエラーとならず default に指定した値が返ります。

mydict = {"A":"Apple", "L":"Lemon", "O":"Orange"}

val = mydict.pop("P", "Not Found")
print(val)
>> Not Found

print(mydict)
>> {'A': 'Apple', 'L': 'Lemon', 'O': 'Orange'}

最後に追加された要素を取得した上で削除する

辞書に最後に追加された要素を (キー, 値) の形式でタプルとして取得したあと要素を辞書から削除する方法です。辞書型で利用可能な popitem メソッドを使用します。

辞書.popitem()

以前のバージョンでは辞書に含まれるいずれかの一つの要素を取得し削除していましたが、 Python 3.7 以降は最後に追加された要素を取得して削除します。

具体的には次のように記述します。

mydict = {"A":"Apple", "L":"Lemon", "O":"Orange"}

val = mydict.popitem()
print(val)
>> ('O', 'Orange')

print(mydict)
>> {'A': 'Apple', 'L': 'Lemon'}

val = mydict.popitem()
print(val)
>> ('L', 'Lemon')

print(mydict)
>> {'A': 'Apple'}

val = mydict.popitem()
print(val)
>> ('A', 'Apple')

print(mydict)
>> {}

popitem メソッドを繰り返し呼び出すと、辞書に最後に追加されたものから順に要素を取得していきます。なお要素が空の状態で popitem メソッドを使用すると KeyError エラーが発生します。

全ての要素を削除する

辞書に含まれるすべての要素を削除する方法です。辞書型で利用可能な clear メソッドを使用します。

辞書.clear()

辞書の要素がすべて削除されます。辞書オブジェクトは削除されません。

具体的には次のように記述します。

mydict = {"A":"Apple", "L":"Lemon", "O":"Orange"}

mydict.clear()
print(mydict)
>> {}

clear メソッドを使用したあとは、辞書オブジェクトは空となりました。

-- --

作成済みの辞書からキー指定して要素を削除したり、すべての要素を削除する方法について解説しました。

( Written by Tatsuo Ikura )

Profile
profile_img

著者 / TATSUO IKURA

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