Ajouter un élément dans chaque dictionnaire d'une liste (compréhension)
J'ai une liste de dictionnaires, et que vous voulez ajouter une clé pour chaque élément de cette liste.
J'ai essayé:
result = [ item.update({"elem":"value"}) for item in mylist ]
mais la mise à jour de la méthode retourne Aucun, mon résultat est la liste complète des Aucun.
result = [ item["elem"]="value" for item in mylist ]
renvoie une erreur de syntaxe.
OriginalL'auteur MickaëlG | 2012-12-28
Vous devez vous connecter pour publier un commentaire.
Vous n'avez pas besoin de s'inquiéter à propos de la construction d'une nouvelle liste de dictionnaires, puisque les références à la mise à jour des dictionnaires sont les mêmes que les références de vos anciens dictionnaires:
Cela devrait aussi fonctionner avec une compréhension de liste. par exemple, [ élément.la mise à jour.... pour l'article dans ma liste]
OriginalL'auteur Jeffrey Theobald
Si vous souhaitez utiliser compréhension de liste, il y a une grande réponse ici:
https://stackoverflow.com/a/3197365/4403872
Dans votre cas, il serait comme ceci:
Par exemple.:
Puis à utiliser
ou
Enfin,
OriginalL'auteur vk1011
Vous utilisez une compréhension de liste de manière incorrecte, l'appel à
item.update
renvoie uneNone
valeur et donc à votre liste nouvellement créée sera plein deNone
valeurs à la place de votredict
valeurs.Vous avez seulement besoin de faire une boucle sur les éléments de la liste et mettre à jour en conséquence, parce que la liste contient des références à la
dict
valeurs.OriginalL'auteur sean
Vous pouvez utiliser la carte.
Si vous avez déjà la liste des lements que vous pouvez faire:
ensuite, vous avez les résultats
OriginalL'auteur user6460797
Soit ne pas utiliser une compréhension de liste, ou de retour d'un nouveau dict basé sur l'original dict en plus de la nouvelle clé:
OriginalL'auteur Martijn Pieters
@vk1011 la réponse est bonne et peut être étendu avec la propagation de l'opérateur, de façon concise, et le nouveau dictionnaire des objets sont un avantage supplémentaire
À remplacent n'importe quelle touche de la valeur avec le nouveau, vous pouvez mettre la propagation de l'opérateur avant le nouvel élément
Pour remplacer la nouvelle entrée de la valeur avec une existante, utilisez la propagation de l'opérateur après le nouvel élément
Les deux méthodes donnent une liste de dictionnaire des objets, y compris le nouvel élément
OriginalL'auteur matharumanpreet00