Changer la clé dans un dictionnaire en Python

Najwa Riyaz 10 octobre 2023
  1. Attribuer une nouvelle clé et supprimer l’ancienne clé dans un dictionnaire en Python
  2. Utiliser la fonction pop() en Python
  3. Parcourez le dictionnaire à l’aide d’une boucle for et modifiez la clé dans un dictionnaire en Python
  4. Reconstruire une instance entièrement nouvelle en Python
  5. Utiliser la classe OrderedDict en Python
  6. Utiliser la fonction Pandas.DataFrame en Python
Changer la clé dans un dictionnaire en Python

Cet article présente diverses méthodes pour changer la clé dans un dictionnaire en Python.

Attribuer une nouvelle clé et supprimer l’ancienne clé dans un dictionnaire en Python

Pour modifier la clé dans un dictionnaire en Python, procédez comme suit.

  1. Attribuez une nouvelle clé à l’ancienne clé.
  2. Supprimez l’ancienne clé.

Consultez l’exemple ci-dessous, qui illustre ces étapes.

dict_ex[new_key] = dict_ex[old_key]
del dict_ex[old_key]

Le code suivant illustre cette méthode.

dict_ex = {1: "January", 2: "Febuary", 3: "March"}
print("Old dictionary-", dict_ex)
dict_ex[2.1] = dict_ex[2]
del dict_ex[2]
print("New dictionary-", dict_ex)

Ici, on voit que la valeur de la clé 2 est remplacée par la valeur 2.1. Veuillez noter que la paire clé-valeur mise à jour a été déplacée à la fin du dictionnaire.

Production:

Old dictionary- {1: 'January', 2: 'Febuary', 3: 'March'}
New dictionary- {1: 'January', 3: 'March', 2.1: 'Febuary'}

Utiliser la fonction pop() en Python

Pour changer la clé dans un dictionnaire en Python, reportez-vous aux étapes suivantes.

  • Pop l’ancienne touche à l’aide de la fonction pop. Suivez cet exemple.
    pop(old_key)
    
  • Attribuez une nouvelle clé à l’ancienne clé sautée. Suivez cet exemple.
    dict_ex[new_key] = dict_ex.pop(old_key)
    

L’exemple ci-dessous illustre cela.

dict_ex = {1: "January", 2: "Febuary", 3: "March"}
print("Old dictionary-", dict_ex)
dict_ex[2.2] = dict_ex.pop(2)
print("New dictionary-", dict_ex)

Production:

Old dictionary- {1: 'January', 2: 'Febuary', 3: 'March'}
New dictionary- {1: 'January', 3: 'March', 2.2: 'Febuary'}

Ici, on voit que la valeur de la clé 2 est remplacée par la valeur 2.2. Veuillez noter que la paire clé-valeur mise à jour a été déplacée à la fin du dictionnaire.

Parcourez le dictionnaire à l’aide d’une boucle for et modifiez la clé dans un dictionnaire en Python

Pour cela, vous prenez d’abord le dictionnaire cible et un autre dictionnaire contenant la nouvelle valeur de clé. Après cela, vous finissez par basculer toutes les clés en conséquence en utilisant une boucle for.

dict_ex = {1: "Jan", 2: "Feb", 3: "Mar"}
print("Old dictionary-", dict_ex)
new_key_assign = {1: 111, 2: 2, 3: 3}
print("New dictionary-")
print(dict([(new_key_assign.get(key), value) for key, value in dict_ex.items()]))

Ici, on voit que la valeur de la clé 1 est remplacée par la valeur 111. Veuillez noter que la paire clé-valeur mise à jour a été conservée cette fois.

Production:

Old dictionary- {1: 'Jan', 2: 'Feb', 3: 'Mar'}
New dictionary-
{111: 'Jan', 2: 'Feb', 3: 'Mar'}

Reconstruire une instance entièrement nouvelle en Python

Dans le dictionnaire Python 3.7+, vous pouvez conserver l’ordre. Pour cela, reconstruisez une toute nouvelle instance du dictionnaire comme suit.

dict_ex = {"old_key": "Jan", 2: "Feb", 3: "Mar"}

{"new_key" if k == "old_key" else k: v for k, v in dict_ex.items()}

Voici un exemple qui le démontre.

dict_ex = {1: "Jan", 2: "Feb", 3: "Mar"}

print({"one" if k == 1 else k: v for k, v in dict_ex.items()})

Ici, on voit que la valeur de la clé 1 est remplacée par la valeur one. Veuillez noter que la paire clé-valeur mise à jour a été conservée cette fois.

Production:

{'one': 'Jan', 2: 'Feb', 3: 'Mar'}

Utiliser la classe OrderedDict en Python

Dans le dictionnaire Python 3.7+, vous pouvez conserver l’ordre en utilisant le OrderedDict avec une expression génératrice.

Notez que vous devez d’abord importer OrderedDict depuis collections. Ensuite, utilisez la classe OrderedDict.

from collections import OrderedDict

dict_ex = {"old_key": "Jan", 2: "Feb", 3: "Mar"}
OrderedDict(("new_key" if k == 1 else k, v) for k, v in dict_ex.items())

Voici un exemple que vous pouvez suivre.

from collections import OrderedDict

dict_ex = {1: "Jan", 2: "Feb", 3: "Mar"}
OrderedDict(("one" if k == 1 else k, v) for k, v in dict_ex.items())

Ici, on voit que la valeur de la clé 1 est remplacée par la valeur one. Veuillez noter que la paire clé-valeur mise à jour a été conservée cette fois.

Production:

OrderedDict([('one', 'Jan'), (2, 'Feb'), (3, 'Mar')])

Utiliser la fonction Pandas.DataFrame en Python

Vous pouvez utiliser Pandas pour modifier une clé dans un dictionnaire en Python. Tout d’abord, importez la bibliothèque pandas.

Ensuite, utilisez l’utilitaire DataFrame comme suit.

import pandas as pd

old_dictionary = {"old_value": "Jan", 2: "Feb", 3: "Mar"}
new_dictionary = {"new_value": "Jan", 2: "Feb", 3: "Mar"}
df = pd.DataFrame([old_dictionary, new_dictionary])

Vérifiez cet exemple de programme.

import pandas as pd

dict_ex = {1: "Jan", 2: "Feb", 3: "Mar"}
print(dict_ex)
new_dict_ex = {11: "Jan", 2: "Feb", 3: "Mar"}
df = pd.DataFrame([dict_ex, new_dict_ex])
print(new_dict_ex)

Ici, on voit que la valeur de la clé 1 est remplacée par la valeur 11. Veuillez noter que la paire clé-valeur mise à jour a été conservée cette fois.

Production:

{1: 'Jan', 2: 'Feb', 3: 'Mar'}
{11: 'Jan', 2: 'Feb', 3: 'Mar'}

Article connexe - Python Dictionary