151 votes

Python met à jour une clé dans dict si elle n'existe pas

Je veux insérer une paire clé-valeur dans dict si la clé n'est pas dans dict.keys (). En gros, je pourrais le faire avec:

 if key not in d.keys():
    d[key] = value
 

Mais y a-t-il une meilleure façon? Ou quelle est la solution pythonique à ce problème?

213voto

Martijn Pieters Points 271458

Vous n'avez pas besoin d'appeler d.keys() , donc

 if key not in d:
    d[key] = value
 

est assez. Il n'y a pas de méthode plus claire, plus lisible.

Vous pouvez mettre à jour à nouveau avec dict.get() , ce qui renverrait une valeur existante si la clé est déjà présente:

 d[key] = d.get(key, value)
 

mais je recommande fortement contre cela; Il s’agit là d’un code de golf, gênant la maintenance et la lisibilité.

127voto

mhawke Points 10385

Utilisez dict.setdefault() :

 >>> d = {1: 'one'}
>>> d.setdefault(1, '1')
'one'
>>> d    # d has not changed because the key already existed
{1: 'one'}
>>> d.setdefault(2, 'two')
'two'
>>> d
{1: 'one', 2: 'two'}
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X