Comment je peux me débarrasser de Aucun des valeurs dans le dictionnaire?
Quelque chose comme:
for (a,b) in kwargs.iteritems():
if not b : del kwargs[a]
Ce code raise exception parce que changer de dictionnaire lors de l'itération.
Je découvre non seulement très jolie solution avec un autre dictionnaire:
res ={}
res.update((a,b) for a,b in kwargs.iteritems() if b is not None)
Grâce
Vous devez vous connecter pour publier un commentaire.
Une autre façon de l'écrire est
En Python3, cela devient
Vous pouvez également utiliser
filter
:J'aime la variation de votre deuxième méthode:
c'est Pythonic et je ne pense pas que laid. Une variation de votre première est:
dict.items()
ne renvoie plus d'une liste dans Python3. Il fonctionne plus commeiteritems()
Si vous avez besoin pour gérer imbriquée
dict
s, alors vous pouvez tirer parti d'une simple approche récursive:À quelqu'un qui a peut-intérêts, voici une autre façon de se débarrasser de la valeur None. Au lieu de supprimer la clé, j'ai changer la valeur de
None
avec un espace réservé pour le même clé.Un cas d'utilisation est l'application avec Spark
RDD.map
sur null évalués JSON.Exemple de sortie:
Pour python3, changer la
iteritems()
àitems()
.