Supprimer une clé du dictionnaire en Python / del vs dict.pop() vs comprehension

Dans cet article, nous allons discuter de 6 façons différentes de supprimer une clé d’un dictionnaire en python, c’est-à-dire

  • Supprimer une clé d’un dictionnaire à l’aide de dict.pop().
  • Supprimez une clé d’un dictionnaire en utilisant pop() et essayez /except.
  • Supprime une clé d’un dictionnaire en utilisant items() & for loop.
  • Supprimez une clé d’un dictionnaire à l’aide de items() & Compréhension du dictionnaire.
  • Supprimez une clé d’un dictionnaire à l’aide de suppr.
  • Suppression d’une clé d’un dictionnaire à l’aide du mot clé del et try/except.

Supposons que nous ayons un dictionnaire de string et int, c’est-à-dire

# Dictionary of strings and intword_freq_dict = {"Hello": 56, "at": 23, "test": 43, "this": 43}

Maintenant, nous voulons supprimer un élément de ce dictionnaire dont la clé est « at ». Il y a différentes façons de le faire. Explorons-les un par un,

Supprimez une clé d’un dictionnaire en utilisant dict.pop()

Dans la classe dictionnaire Python fournit une méthode pop() pour supprimer un élément du dictionnaire en fonction de la clé, c’est-à-dire

dictionary.pop(key)
  • Si la clé donnée existe dans le dictionnaire, alors dict.pop() supprime l’élément avec la clé donnée et renvoie sa valeur.
  • Si la clé donnée n’existe pas dans le dictionnaire, elle renvoie la valeur par défaut donnée.
  • Si la clé donnée n’existe pas dans le dictionnaire et qu’aucune valeur par défaut n’est transmise à pop(), alors il lancera KeyError

Supprimons un élément de dict à l’aide de pop(),

key_to_be_deleted = 'this'# As 'this' key is present in dict, so pop() will delete# its entry and return its valueresult = word_freq_dict.pop(key_to_be_deleted, None)print("Deleted item's value = ", result)print("Updated Dictionary :", word_freq_dict)

Sortie:

Deleted item's value = 43Updated Dictionary : {'Hello': 56, 'at': 23, 'test': 43}

Il a supprimé la paire clé-valeur du dictionnaire où la clé était « this » et a également renvoyé sa valeur.

  • Dict Python.méthode pop() expliquée en détail
  • Comment supprimer plusieurs clés du dictionnaire lors de l’itération?

Supprimer une clé du dictionnaire si elle existe en utilisant pop()

La valeur par défaut dans pop() est nécessaire, car si la clé donnée n’est pas présente dans le dictionnaire et qu’aucune valeur par défaut n’est donnée dans pop(), elle lancera keyError. Supprimons un élément qui n’est pas présent dans le dictionnaire en utilisant la fonction pop() et sans passer d’argument de valeur par défaut dans pop(), c’est-à-dire Erreur

key_to_be_deleted = 'where'word_freq_dict.pop(key_to_be_deleted)

:

KeyError: 'where'

Si la clé donnée dans la fonction pop() n’est pas présente dans le dictionnaire et que la valeur par défaut n’est pas fournie, pop() peut lancer KeyError. Donc, pour éviter cette erreur, nous devrions toujours vérifier si la clé existe dans le dictionnaire avant d’essayer de la supprimer en utilisant la fonction pop() et sans aucune valeur par défaut, c’est-à-dire

key_to_be_deleted = 'where'if key_to_be_deleted in word_freq_dict: word_freq_dict.pop(key_to_be_deleted)else: print(f'Key {key_to_be_deleted} is not in the dictionary')

Sortie:

Key where is not in the dictionary

Nous pouvons également utiliser try/except pour gérer cette erreur,

key_to_be_deleted = 'where'try: word_freq_dict.pop(key_to_be_deleted)except KeyError: print(f'Key {key_to_be_deleted} is not in the dictionary')

Sortie:

Key where is not in the dictionary

Supprimer une clé d’un dictionnaire en utilisant items() & for loop

Itérer sur la clé et filtrer la clé qui doit être supprimée, c’est-à-dire

# Dictionary of strings and intword_freq_dict = {"Hello": 56, "at": 23, "test": 43, "this": 43}key_to_be_deleted = 'at'new_dict = {}for key, value in word_freq_dict.items(): if key is not key_to_be_deleted: new_dict = valueword_freq_dict = new_dictprint(word_freq_dict)

Sortie:

{'Hello': 56, 'test': 43, 'this': 43}

Nous avons créé un nouveau dictionnaire temporaire, puis itéré sur toutes les paires clé-valeur du dictionnaire d’origine. Lors de l’itération, nous avons copié la paire clé-valeur dans un nouveau dictionnaire temporaire uniquement si la clé n’est pas égale à la clé à supprimer. Une fois l’itération terminée, nous avons copié le nouveau contenu du dictionnaire temporaire dans le dictionnaire d’origine. Dans cette approche, il n’y a aucun risque de KeyError, etc.

Supprimer une clé d’un dictionnaire en utilisant items() & Compréhension du dictionnaire

En utilisant la logique de l’exemple précédent, nous pouvons filtrer le contenu du dictionnaire en fonction de la clé en utilisant items() & compréhension du dictionnaire,

word_freq_dict = {key: value for key, value\ in word_freq_dict.items()\ if key is not key_to_be_deleted}print(word_freq_dict)

Sortie:

{'Hello': 56, 'test': 43, 'this': 43}

Nous avons itéré sur les paires clé-valeur du dictionnaire et construit un nouveau dictionnaire en utilisant la compréhension du dictionnaire. Mais nous avons exclu la paire où la clé correspondait à la clé à supprimer. Ensuite, nous avons attribué ce nouveau dictionnaire au dictionnaire d’origine. Cela a donné un effet que l’élément du dictionnaire est supprimé en fonction de la clé.

Par conséquent, l’avantage de cette approche est que vous n’avez pas à vous soucier de l’erreur de clé au cas où la clé n’existerait pas dans le dictionnaire.

Supprimer une clé d’un dictionnaire en utilisant del

Nous pouvons utiliser l’instruction del pour supprimer une paire clé-valeur du dictionnaire en fonction de la clé,

del dict

Sélectionnez d’abord l’élément d’un dictionnaire en passant la clé dans l’opérateur d’indice, puis passez-la à l’instruction del. Si la clé est présente dans le dictionnaire, elle supprimera la clé et la valeur correspondante du dictionnaire. Mais si la clé donnée n’est pas présente dans le dictionnaire, elle déclenchera une erreur, c’est-à-dire KeyError.

Utilisons-le pour supprimer la clé du dictionnaire mentionné ci-dessus,

# Dictionary of strings and intword_freq_dict = {"Hello": 56, "at": 23, "test": 43, "this": 43}# Deleting an item from dictionary using deldel word_freq_dictprint(word_freq_dict)

Sortie:

{'Hello': 56, 'test': 43, 'this': 43}

Il a supprimé l’élément du dictionnaire où la clé était « at ». Mais que se passe-t-il si nous utilisons une instruction del avec une clé qui n’existe pas dans le dictionnaire, elle peut alors lancer KeyError. Par exemple,

key_to_be_deleted = 'where'del word_freq_dict

Sortie:

KeyError: 'where'

Par conséquent, nous devons toujours vérifier si la clé existe dans le dictionnaire avant d’essayer de les supprimer en utilisant le mot clé del pour éviter la KeyError,

# If key exist in dictionary then delete it using del.key_to_be_deleted = 'where'if key_to_be_deleted in word_freq_dict: del word_freq_dictelse: print(f'Key {key_to_be_deleted} is not in the dictionary')

Sortie:

Key where is not in the dictionary

Suppression d’une clé d’un dictionnaire en utilisant le mot clé del et try /except

Si nous ne voulons pas de vérification if avant d’appeler del, nous pouvons également utiliser try /except. Essayons de supprimer une clé qui n’existe pas dans le dictionnaire et attrapons également l’erreur en utilisant try /except,

# If key exist in dictionary then delete it using del.key_to_be_deleted = 'where'try: del word_freq_dictexcept KeyError: print(f'Key {key_to_be_deleted} is not in the dictionary')

Sortie:

Key where is not in the dictionary

Conclusion:

Ce sont les 6 façons différentes de supprimer une clé d’un dictionnaire en python.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.

Previous post 8 signes d’anorexie athlétique an une obsession de l’exercice excessif
Next post Les dangers des Décharges d’examen