Python Accès à des Valeurs dans Une Liste de Dictionnaires
Dire que j'ai une Liste de dictionnaires qui ont des Noms et des âges et d'autres informations, comme:
thisismylist= [
{'Name': 'Albert' , 'Age': 16},
{'Name': 'Suzy', 'Age': 17},
{'Name': 'Johnny', 'Age': 13}
]
Comment puis-je imprimer les éléments suivants à l'aide d'une boucle for:
Albert
Suzy
Johnny
Je ne peux pas simplement envelopper ma tête autour de cette idée...
InformationsquelleAutor user2487686 | 2013-06-14
Vous devez vous connecter pour publier un commentaire.
Si vous êtes simplement à la recherche pour les valeurs associées à 'Nom', votre code devrait ressembler à:
Ressemble, vous devez aller sur le Python le contrôle du flux de la documentation. Fondamentalement, vous avez juste une boucle sur tous les éléments de votre liste, puis pour chacun de ces éléments (dictionnaires, dans ce cas), vous pouvez accéder quelles que soient les valeurs que vous voulez. Le code ci-dessous, par exemple, permet d'imprimer toutes les valeurs dans chaque dictionnaire de l'intérieur de la liste.
Noter que ce n'est pas imprimer les touches, juste les valeurs. Pour imprimer les touches ainsi, faire imprimer votre déclaration
print key, d[key]
. Facile!Mais vraiment, allez lire le flux de contrôle de la documentation; c'est très agréable.
Si vous voulez une liste de ces valeurs:
Même méthode, vous pouvez obtenir un n-uplet de données:
Ou la, tour la liste de dicts en une seule touche,la valeur de la paire de dictionnaire:
Donc, même méthode, une façon de les imprimer:
Et vous pouvez l'imprimer triés si vous le souhaitez:
Ou, de tri, de par leur âge, tandis que l'aplatissement de la liste:
Le code suivant devrait fonctionner parfaitement.
Vous pourriez projet de la
Name
attribut de chaque élément dans la liste et joindre les résultats avec les sauts de ligne:Modifier
Il m'a fallu quelques minutes, mais je me suis souvenu de l'autre façon intéressante de le faire. Vous pouvez utiliser une combinaison de
itertools
et laoperator
module pour ce faire ainsi. Vous pouvez voir sur repl.trop.Dans tous les cas, vous êtes probablement mieux d'utiliser une vanille
for
boucle, mais j'ai pensé que quelques autres options ont été dans l'ordre.Une abréviation façon de le faire sans l'importation de bibliothèques: