extrait de l'élément de la liste de dictionnaires
Supposons que vous avez une liste de dictionnaires comme celui-ci:
a = [ {'name':'pippo', 'age':'5'} , {'name':'pluto', 'age':'7'} ]
Que voulez-vous extraire de cette liste que le dict où nom==pluton?
Pour rendre les choses un peu plus difficile, considère que je ne peut pas faire l'importation
que voulez-vous extraire? :/
le dictionnaire, c'est à dire {'name':'pluto', 'age':'7'}
le dictionnaire, c'est à dire {'name':'pluto', 'age':'7'}
OriginalL'auteur Ottavio Campana | 2011-10-26
Vous devez vous connecter pour publier un commentaire.
Compréhension de liste est idéal pour cela:
Super! vous avez résolu mon problème, merci!
Ouais, j'ai édité dès que je l'ai vu. Vous avez été rapide pour avis 🙂 Et oui, il va produire une liste. À l'aide de [0] directement est dangereux, cependant, si le résultat sera une liste vide. Vous pouvez utiliser quelque chose comme
x = x[0] if x else {}
sur le résultat. Ou si lename
est unique, alors[x] = [d for d in a if d['name'] == 'pluto'] or [{}]
En effet, c'est pourquoi j'ai dit " si vous êtes sûr qu'il y en est un-et un seul - si il n'en existe pas, ou plus d'un, vous allez finir avec les problèmes, mais les problèmes que vous avez maintenant donné des solutions élégantes. Merci pour la clarification.
Est-il une raison particulière pour expliquer pourquoi il y a un besoin de l'aide de [.........] comme la sortie parethesis
OriginalL'auteur rplnt
En dehors de la liste de compréhension que d'autres réponses à donner à vous, vous pouvez aussi le faire avec un filtre et un lambda:
OriginalL'auteur Mikel
OriginalL'auteur Michael Brennan
OriginalL'auteur Karoly Horvath
Utiliser une liste de compréhension qui choisit le bon dict dans la liste des dicts.
Ou, si vous n'êtes pas sûr si tous les dicts dans
a
ont un " nom " de la clé,Noter que ces deux retour d'un liste. Si vous savez qu'il y a une seule entrée correspondante, vous pouvez ajouter
[0]
à la fin pour revenir au réel dict:OriginalL'auteur Andrew Jaffe