En Python, comment parcourir le dictionnaire et modifier la valeur si cela correspond à quelque chose?

Si la valeur est Aucun, je voudrais la changer en “” (chaîne vide).

Je commence comme ça, mais j’oublie:

for k, v in mydict.items(): if v is None: ... right? 

 for k, v in mydict.iteritems(): if v is None: mydict[k] = '' 

Dans un cas plus général, par exemple si vous ajoutez ou supprimez des clés, il peut ne pas être prudent de changer la structure du conteneur sur lequel vous faites une boucle. mais atsortingbuer une valeur différente à un index existant ne pose aucun problème, donc, dans Python 2.Toutefois, il est préférable d’utiliser des iteritems .

Vous pouvez créer un dict compréhensif des éléments dont les valeurs sont Aucune, puis mettre à jour dans l’original:

 tmp = dict((k,"") for k,v in mydict.iteritems() if v is None) mydict.update(tmp) 

Update – fait des tests de performance

Eh bien, après avoir essayé des dicts de 100 à 10 000 éléments, avec un pourcentage variable de valeurs de None, les performances de la solution d’Alex sont globalement deux fois plus rapides que cette solution.

Les compréhensions sont généralement plus rapides, et cela présente l’avantage de ne pas éditer mydict lors de l’itération:

 mydict = dict((k, v if v else '') for k, v in mydict.items())