Je l'oublierai bientôt, alors prends note.
Lors de la récupération d'une valeur à partir d'une instance dict
avec une clé
Si vous y réfléchissez, il est bon d'utiliser la méthode get
.
>>> d = {"a": 1, "b": 2}
>>> d["c"]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
KeyError: 'c'
>>> d.get("c") #Aucun n'est renvoyé si la valeur par défaut n'est pas spécifiée
>>> d.get("c", 3) #Si la valeur par défaut est spécifiée, cette valeur sera renvoyée.
3
>>>
La bonne chose est que vous pouvez spécifier get (key [, default])
et la valeur par défaut.
Ainsi, vous pouvez facilement écrire quelque chose comme ce qui suit avec get
.
>>> c = d["c"] if "c" in d else 3
>>> c
3
>>> c = d["c"] if d.has_key("c") else 3
>>> c
3
#Les gars ci-dessus peuvent écrire parfaitement avec la spécification par défaut de get
>>> c = d.get("c", 3)
>>> c
3
De plus, le traitement suivant, qui a été importé defaultdict
pour écrire proprement, peut également être écrit avec get
.
Cependant, il est préférable d'utiliser defaultdict
, donc si vous voulez améliorer la lisibilité, vous devez utiliser defaultdict
.
>>> from collections import defaultdict
>>> dd = defaultdict(int, d)
>>> dd
defaultdict(<type 'int'>, {'a': 1, 'b': 2})
>>> dd["c"] += 1 #À une clé qui n'existe pas+=Aucune erreur ne se produit même si 1 est défini et que la valeur par défaut de int, 0, est implicitement définie.
>>> dd["c"]
1
#Vous pouvez écrire sans utiliser defaultdict en utilisant get
>>> d
{'a': 1, 'b': 2}
>>> d["c"] = d.get("c", 0) + 1 #Obtenir la valeur par défaut 0 à partir d'une clé inexistante+1 faire
>>> d["c"]
1
Recommended Posts