note.nkmk.me

Pythonで辞書の要素を削除するclear, pop, popitem, del

Date: 2018-04-13 / tags: Python, 辞書

Pythonで辞書(dict型オブジェクト)の要素を削除するには以下の方法がある。

  • すべての要素を削除(初期化): clear()メソッド
  • キーを指定して要素を削除し、値を返す: pop()メソッド
  • 要素を削除し、キーと値を返す: popitem()メソッド
  • キーを指定して要素を削除(複数指定可): del

それぞれについて説明する。

スポンサーリンク

辞書のすべての要素を削除(初期化): clearメソッド

clear()メソッドを呼ぶと辞書オブジェクトのすべての要素が削除(初期化)され、空の辞書になる。

d = {'k1': 1, 'k2': 2, 'k3': 3}

d.clear()
print(d)
# {}

辞書のキーを指定して要素を削除し、値を返す: popメソッド

pop()メソッドは引数にキーkeyを指定してその要素を削除し、削除された値valueを返す。

d = {'k1': 1, 'k2': 2, 'k3': 3}

removed_value = d.pop('k1')
print(d)
# {'k2': 2, 'k3': 3}

print(removed_value)
# 1

デフォルトでは存在しないキーを指定するとエラー(KeyError例外)となる。

d = {'k1': 1, 'k2': 2, 'k3': 3}

# removed_value = d.pop('k4')
# print(d)
# KeyError: 'k4'

第二引数を指定するとキーが存在しない場合にその値を返す。辞書オブジェクト自体は変化なし。

d = {'k1': 1, 'k2': 2, 'k3': 3}

removed_value = d.pop('k4', None)
print(d)
# {'k1': 1, 'k2': 2, 'k3': 3}

print(removed_value)
# None

辞書の要素を削除し、キーと値を返す: popitemメソッド

popitem()メソッドは辞書の要素を削除し、そのキーkeyと値valueのタプル(key, value)を返す。どの要素を削除するかは指定できない。

空の辞書オブジェクトに対してはエラー(KeyError例外)となる。

d = {'k1': 1, 'k2': 2}

k, v = d.popitem()
print(k)
print(v)
print(d)
# k2
# 2
# {'k1': 1}

k, v = d.popitem()
print(k)
print(v)
print(d)
# k1
# 1
# {}

# k, v = d.popitem()
# KeyError: 'popitem(): dictionary is empty'

辞書のキーを指定して要素を削除(複数指定可): del文

del文を使って辞書の要素を削除することも可能。

辞書オブジェクト[キー]の形で指定する。

d = {'k1': 1, 'k2': 2, 'k3': 3}

del d['k2']
print(d)
# {'k1': 1, 'k3': 3}

複数の要素を指定できる。

d = {'k1': 1, 'k2': 2, 'k3': 3}

del d['k1'], d['k3']
print(d)
# {'k2': 2}

存在しないキーを指定するとエラー(KeyError例外)となる。

d = {'k1': 1, 'k2': 2, 'k3': 3}

# del d['k4']
# print(d)
# KeyError: 'k4'
スポンサーリンク
シェア
このエントリーをはてなブックマークに追加

関連カテゴリー

関連記事