Je suis à la recherche d'une approche d'accès au clavier pratique et sûre python dictionnaire). Voici 3 façons qui me sont venues à l'esprit.
data = {'color': 'yellow'}
# approach one
color_1 = None
if 'color' in data:
color_1 = data['color']
# approach two
color_2 = data['color'] if 'color' in data else None
# approach three
def safe(obj, key):
if key in obj:
return obj[key]
else:
return None
color_3 = safe(data, 'color')
#output
print("{},{},{}".format(color_1, color_2, color_3))
Les trois méthodes fonctionnent, bien sûr. Mais existe-t-il un moyen simple et original pour y parvenir sans avoir à utiliser un excès de if
ou des fonctions personnalisées?
Je pense qu'il devrait y en avoir, car c'est un usage très courant.
Vous avez manqué la méthode canonique, dict.get()
:
color_1 = data.get('color')
Il renverra None
si la clé est manquante. Vous pouvez définir une valeur par défaut différente comme deuxième argument:
color_2 = dict.get('color', 'red')
Découvrez dict.get()
. Vous pouvez fournir une valeur à renvoyer si la clé n'est pas trouvée dans le dictionnaire, sinon elle renverra None
.
>>> data = {'color': 'yellow'}
>>> data.get('color')
'yellow'
>>> data.get('name') is None
True
>>> data.get('name', 'nothing')
'nothing'