web-dev-qa-db-ja.com

OrderedDictからキーと値を削除する

OrderedDictからキーと値を削除しようとしていますが、使用する場合:

dictionary.popitem(key)

別のキーが指定されている場合でも、最後のキーと値が削除されます。辞書がある場合、途中でキーを削除することは可能ですか?

22
Acoop

はい、使用できます del

del dct[key]

以下はデモンストレーションです。

>>> from collections import OrderedDict
>>> dct = OrderedDict()
>>> dct['a'] = 1
>>> dct['b'] = 2
>>> dct['c'] = 3
>>> dct
OrderedDict([('a', 1), ('b', 2), ('c', 3)])
>>> del dct['b']
>>> dct
OrderedDict([('a', 1), ('c', 3)])
>>>

実際、辞書から項目を削除するには、常にdelを使用する必要があります。 dict.popおよびdict.popitemを使用してアイテムを削除し、削除したアイテムを返し、後で保存できるようにします。ただし、保存する必要がない場合は、これらの方法を使用しても効率が低下します。

37
iCodez

Popを使用できます。popitemはデフォルトで最後を削除します:

d = OrderedDict([(1,2),(3,4)])
d.pop(your_key)
6