web-dev-qa-db-fra.com

Supprimer une clé et une valeur d'un OrderedDict

J'essaie de supprimer une clé et une valeur d'un OrderedDict mais quand j'utilise:

dictionary.popitem(key)

il supprime la dernière clé et la dernière valeur même lorsqu'une clé différente est fournie. Est-il possible de supprimer une clé au milieu si le dictionnaire?

22
Acoop

Oui, vous pouvez utiliser del :

del dct[key]

Voici une démonstration:

>>> 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)])
>>>

En fait, vous devez toujours utiliser del pour supprimer un élément d'un dictionnaire. dict.pop et dict.popitem sont utilisés pour supprimer un élément et renvoyer l'élément supprimé afin qu'il puisse être enregistré pour plus tard. Si vous n'avez cependant pas besoin de l'enregistrer, l'utilisation de ces méthodes est moins efficace.

37
iCodez

Vous pouvez utiliser pop, popitem supprime le dernier par défaut:

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