Python >> Tutoriel Python >  >> Python

8 meilleures façons de mettre à jour une clé inexistante dans Python Dict

Pour mettre à jour une clé dans un dictionnaire si elle n'existe pas, vous pouvez vérifier si elle est présente dans le dictionnaire à l'aide du in mot-clé avec le if instruction, puis mettez à jour la paire clé-valeur en utilisant la notation en indice ou update() méthode ou l'astérisque * opérateur.

Cette approche sera examinée dans la section 1 de cet article.

Le setdefault(key[, default]) met à jour le dictionnaire avec la paire clé-valeur uniquement si la clé n'existe pas. Sinon, il renvoie les éléments préexistants.

Cette approche sera examinée dans la section 2 de cet article.


Plongeons-nous dans l'article, où nous expliquerons tout cela et plus encore d'une manière facile à suivre, étape par étape. Aller! 🚀

Formulation et aperçu du problème

Problème : Étant donné un dictionnaire. Comment mettre à jour une clé dedans si la clé n'existe pas ?

Exemple :

device = {
    "brand": "Apple",
    "model": "iPhone 11",
}

< Some Method to Check if key-value pairs "color":"red" and "year":2019  exists or not and then update/insert it in the dictionary >  

print(device)

Sortie :

{'brand': 'Apple', 'model': 'iPhone 11', 'color': 'red', 'year': 2019}

Pour résoudre notre énoncé de problème, suivons une approche modulaire et décomposons notre discussion dans cet article en trois parties.

  1. Dans la première section, discutons des méthodes pour mettre à jour ou insérer une clé,
  2. Dans la deuxième section, nous aborderons les méthodes pour vérifier si la clé est présente dans le dictionnaire,
  3. Enfin, nous fusionnerons nos concepts pour arriver à la solution finale.

Sans plus tarder, plongeons-nous tout de suite dans les solutions.

Section 1 :Insérer/Mettre à jour la clé dans un dictionnaire

Méthode 1 :Créer une nouvelle paire clé-valeur et l'affecter au dictionnaire | Notation en indice

Nous pouvons créer une nouvelle clé d'index, lui attribuer une valeur, puis attribuer la paire clé-valeur au dictionnaire.

Examinons le programme suivant, qui explique la syntaxe pour créer une nouvelle paire clé-valeur et l'affecter au dictionnaire :

device = {
  "brand": "Apple",
  "model": "iPhone 11",
}

device["year"] = 2019
print(device)

Sortie :

{'brand': 'Apple', 'year': 2019, 'model': 'iPhone 11'}

Méthode 2 :Utilisez la mise à jour() Fonction

Le update() est utilisée pour insérer ou mettre à jour une paire clé-valeur spécifique dans un dictionnaire. L'élément à insérer peut également être un autre itérable.

De plus, si la clé spécifiée est déjà présente dans le dictionnaire, la valeur précédente sera écrasée.

Le code suivant illustre l'utilisation du update() méthode :

device = {
  "brand": "Apple",
  "model": "iPhone 11",
}

device.update({"year" : 2019})
print(device)

Sortie :

{'brand': 'Apple', 'model': 'iPhone 11', 'year': 2019}

Méthode 3 :Utilisation de l'astérisque * Opérateur

Nous pouvons combiner un dictionnaire existant et une paire clé-valeur en utilisant le double astérisque ** opérateur de déballage.

Examinons le code suivant pour comprendre le concept et l'utilisation du ** opérateur pour insérer des éléments dans un dictionnaire.

device = {
  "brand": "Apple",
  "model": "iPhone 11",
}
device = {**device, **{"year":2019}}
print(device)

Sortie :

{'brand': 'Apple', 'model': 'iPhone 11', 'year': 2019}

🛑 Avis de non-responsabilité : Dans les méthodes ci-dessus, si nous ne vérifions pas la présence d'une clé dans le dictionnaire, la valeur sera écrasée dans le dictionnaire si la clé et la valeur existent déjà.

Maintenant, cela nous amène à la deuxième section de notre discussion !

Section 2 :Vérifier si une clé est présente dans un dictionnaire

Méthode 1 :Utilisation de dans Mot clé

Le mot-clé d'opérateur d'appartenance in est utilisé pour vérifier si une clé est déjà présente dans le dictionnaire.

Le programme suivant explique comment nous pouvons utiliser le in mot-clé.

device = {
  "brand": "Apple",
  "model": "iPhone 11",
  "year":2018
}

if "year" in device:
  print("key year is present!")
else:
  print("key year is not Present!")

if "color" in device:
  print("key color is present!")
else:
  print("key color is not present!") 

Sortie :

key year is present!
key color is not present!

Remarque : Tout comme le in mot-clé, nous pouvons utiliser le not in mot-clé pour vérifier si la clé n'est pas présente dans le dictionnaire.

Méthode 2 :Utilisation de keys() Fonction

Le keys() intégré La méthode du dictionnaire extrait les clés présentes dans un dictionnaire et les stocke dans un itérable. Ainsi, à l'aide de cette méthode intégrée, nous pouvons déterminer si une clé est présente dans le dictionnaire.

Jetons un coup d'œil au programme suivant pour comprendre comment utiliser le keys() méthode et vérifier la disponibilité d'une clé dans le dictionnaire :

device = {
  "brand": "Apple",
  "model": "iPhone 11",
  "year":2018
}

if "year" in device.keys():
  print("key year is present!")
else:
  print("key year is not Present!")

if "color" in device.keys():
  print("key color is present!")
else:
  print("key color is not present!") 

Sortie :

key year is present!
key color is not present!

Méthode 3 :Utilisation de has_key() Fonction

Si vous utilisez Python 2, vous pourriez imaginer vos chances avec le has_key() method, qui est une méthode intégrée à Python qui renvoie True si la clé spécifiée est présente dans le dictionnaire sinon, elle renvoie False .

Attention : has_key() a été supprimé de Python 3 et est également en retard sur le in mot clé tout en vérifiant la présence de clés dans un dictionnaire en termes de performances. Vous devez donc éviter de l'utiliser si vous utilisez Python 3 ou supérieur.

Voyons maintenant le programme suivant pour comprendre comment nous pouvons utiliser le has_key() méthode :

# Python 2 Only!!
device = {
  "brand": "Apple",
  "model": "iPhone 11",
  "year":2018
}

if device.has_key("year"):
  print("key year is present!")
else:
  print("key year is not Present!")

if device.has_key("color"):
  print("key color is present!")
else:
  print("key color is not present!") 

Sortie :

key year is present!
key color is not present!

Phew!!! Maintenant, nous sommes enfin équipés de toutes les procédures pour vérifier ainsi que mettre à jour une clé dans un dictionnaire si elle n'existe pas dans le dictionnaire.

Cela nous amène aux dernières étapes de notre discussion, où nous combinerons nos connaissances de la section 1 et de la section 2 pour atteindre le résultat souhaité.

Mettre à jour la clé dans le dictionnaire s'il n'existe pas

Solution 1 :Utiliser les concepts abordés dans les sections 1 et 2

Puisque nous en avons terminé avec les concepts, plongeons dans le programme pour les mettre en œuvre et obtenir le résultat final :

device = {
  "brand": "Apple",
  "model": "iPhone 11",
}

# Method 1 : Create a New Key_Value pair and check using the in keyword
if "color" not in device:
  device["color"] = "red"

# Method 2 : Use update() method and check using the not in keyword
if "year" not in device.keys():
  device.update({"year" : 2019})

#  Method 2 : Use * operator and check using the not in keyword
if "brand" not in device.keys():
  device.update({"brand" : "Samsung" })
else:
  print(device)

Sortie :

{'brand': 'Apple', 'model': 'iPhone 11', 'color': 'red', 'year': 2019}

Solution 2 : utiliser setdefault() Méthode

Le dictionnaire Python setdefault() La méthode renvoie la valeur d'une clé si elle existe déjà dans le dictionnaire. S'il n'existe pas, la paire clé-valeur est insérée dans le dictionnaire.

Regardons le programme suivant, qui explique le setdefault() méthode en Python :

device = {
  "brand": "Apple",
  "model": "iPhone 11",
  "color": "red"
}

device.setdefault('year',2019)
print(device)

Sortie :

{'brand': 'Apple', 'model': 'iPhone 11', 'color': 'red', 'year': 2019}

Conclusion

Après avoir lu cet article, j'espère que vous pourrez facilement vérifier et mettre à jour les valeurs dans un dictionnaire.

Si vous avez des doutes concernant les dictionnaires Python, je vous recommande fortement de suivre notre tutoriel sur les dictionnaires Python.

Veuillez vous abonner et rester à l'écoute pour d'autres articles intéressants !