Skip to content

Supprimer un élément d’un dictionnaire en Python (clear, pop, popitem, del)

Cet article décrit comment supprimer un élément (élément) d’un dictionnaire dict en Python.

  • Supprimer tous les éléments d’un dictionnaire :clear()
  • Supprime un élément par une clé et renvoie une valeur :pop()
  • Supprimer un élément et renvoyer une clé et une valeur :popitem()
  • Supprimer un élément par une clé d’un dictionnaire :del
  • Supprimer les éléments qui remplissent la condition : Compréhensions du dictionnaire

Consultez l’article suivant pour savoir comment ajouter des éléments à un dictionnaire.

Supprimer tous les éléments d’un dictionnaire :clear()

La méthode clear() supprime tous les éléments d’un dictionnaire et le rend vide.

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

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

Supprime un élément par une clé et renvoie une valeur :pop()

En spécifiant une clé à la méthode pop(), l’élément est supprimé et sa valeur est renvoyée.

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

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

print(removed_value)
# 1

Par défaut, la spécification d’une clé inexistante génère KeyError.

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

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

Si le deuxième argument est spécifié, sa valeur est retournée si la clé n’existe pas. Le dictionnaire lui-même reste inchangé.

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

Supprimer un élément et renvoyer une clé et une valeur :popitem()

La méthode popitem() supprime un élément d’un dictionnaire et renvoie un tuple de sa clé et de sa valeur (clé, valeur). Vous ne pouvez pas spécifier l’élément à supprimer.

Une erreur KeyError est levée pour un dictionnaire vide.

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'

Supprimer un élément par une clé d’un dictionnaire :del

Vous pouvez également utiliser l’instruction del pour supprimer un élément d’un dictionnaire.

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

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

Vous pouvez spécifier et supprimer plusieurs éléments.

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

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

Si une clé inexistante est spécifiée, l’erreur KeyError est générée.

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

# del d['k4']
# print(d)
# KeyError: 'k4'

Supprimer les éléments qui remplissent la condition : Compréhensions du dictionnaire

Pour supprimer les éléments qui satisfont aux conditions d’un dictionnaire, utilisez les compréhensions de dictionnaire, la version dictionnaire des compréhensions de liste.

« Supprimer les éléments qui remplissent la condition » revient à « extraire les éléments qui ne remplissent pas la condition ».

Par exemple, pour supprimer les éléments de valeur impaire, vous pouvez extraire les éléments de valeur paire. Il en est de même dans le cas contraire.

d = {'apple': 1, 'banana': 10, 'orange': 100}

dc = {k: v for k, v in d.items() if v % 2 == 0}
print(dc)
# {'banana': 10, 'orange': 100}

dc = {k: v for k, v in d.items() if v % 2 == 1}
print(dc)
# {'apple': 1}

La méthode items() de dict est utilisée pour extraire les clés et les valeurs.

Il est également possible de spécifier des conditions pour les clés.

dc = {k: v for k, v in d.items() if k.endswith('e')}
print(dc)
# {'apple': 1, 'orange': 100}

dc = {k: v for k, v in d.items() if not k.endswith('e')}
print(dc)
# {'banana': 10}

Vous pouvez également utiliser et et ou pour spécifier plusieurs conditions.

dc = {k: v for k, v in d.items() if v % 2 == 0 and k.endswith('e')}
print(dc)
# {'orange': 100}