Удалить ключ и значение из OrderedDict

Я пытаюсь удалить ключ и значение из OrderedDict, но когда я использую:

dictionary.popitem(key)

он удаляет последний ключ и значение даже при наличии другого ключа. Можно ли удалить ключ в середине, если словарь?

Ответы

Ответ 1

Да, вы можете использовать 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 используются для удаления элемента и возврата удаленного элемента, чтобы его можно было сохранить позже. Если вам не нужно его сохранять, то использование этих методов менее эффективно.

Ответ 2

Вы можете использовать pop, popitem удаляет последнее по умолчанию:

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