Python: ディクショナリの要素を削除 del, pop, clear
Pythonでディクショナリ(辞書)の要素を削除する場合、 del文やpop()メソッド、clear()メソッドを使う方法があります。 それぞれの方法について解説します。
del文で削除
del文の書式は次の通りです。ディクショナリ名の後にブラケット[] でキーを指定します。
del ディクショナリ名[キー]
ディクショナリから指定したキーの要素を削除します。
次のコードはキーが "a" の要素を削除しています。
d = {"a": 10, "b": 20, "c": 30} # 要素を削除 del d["a"] print(d) # {'b': 20, 'c': 30}
存在しないキーを指定するとエラーが出る
del文では、存在しないキーを指定するとエラー「KeyError」が発生します。
d = {"a": 10, "b": 20, "c": 30} # 要素を削除 del d["x"]
実行結果
Traceback (most recent call last): File "test.py", line 7, indel d["x"] KeyError: 'x'
キーの存在を確認する方法
in 演算子を使って、キーが存在することを確認した後に 削除するとエラーは防げます。
d = {"a": 10, "b": 20, "c": 30} if "x" in d: # 要素を削除 del d["x"] else: #存在しない場合 print(False)
pop()メソッドで削除
del文ではキーが存在しない場合にエラーが発生しますが、
dictオブジェクトのpop()メソッドではキーが存在しな場合にエラーにならないように
することができます。
pop()メソッドの書式は次の通りです。
書式
ディクショナリ名.pop(キー[, 非存在時の値])
pop()メソッドは引数に指定したキーの要素を削除します。
戻り値は削除した要素の値です。
キーが存在しない場合は、「非存在時の値」が戻りますが、
「非存在時の値」を指定していなければエラー(KeyError)となります。
次のコードではpop()メソッドを3回実行して、戻り値を表示しています。 最後のpop()メソッドは「非存在時の値」を指定しておらず、 キーも存在しないためエラー「KeyError」が発生します。
d = {"a": 10, "b": 20, "c": 30} print(d.pop("a", None)) # 10 print(d.pop("x", None)) # None print(d.pop("x")) # エラー KeyError
clear()メソッドで全ての要素を削除
dictオブジェクトのclear()メソッドを使うとすべての要素を削除できます。
書式
ディクショナリ名.clear()
引数は必要なく、ディクショナリは空の状態{}になります。
d = {"a": 10, "b": 20, "c": 30} d.clear() print(d) # {}