Python : Parcourir les dictionnaires
De www.yakakliker.org
La méthode keys()
La méthode keys renvoie un objet dict_keys contenant les clés d'un dictionnaire.
Par exemple :
personne = {
'nom': 'dupont',
'prenom': 'jean',
'adresse': {
'ville': 'paris'
}
}
print(personne.keys()) # dict_keys(['nom', 'prenom', 'adresse'])
Attention ! Un dict_keys n'est pas une liste, il s'agit d'un objet particulier appelé une vue. C'est un objet itérable :
personne = {
'nom': 'dupont',
'prenom': 'jean',
'adresse': {
'ville': 'paris'
}
}
for clé in personne.keys():
print(clé)
...mais il n'est pas possible d'y accéder par index :
personne = {
'nom': 'dupont',
'prenom': 'jean',
'adresse': {
'ville': 'paris'
}
}
print(personne.keys()[0]) # TypeError: 'dict_keys' object is not subscriptable
Si vous en avez besoin vous pouvez cependant convertir la vue en liste :
personne = {
'nom': 'dupont',
'prenom': 'jean',
'adresse': {
'ville': 'paris'
}
}
print(list(personne.keys())[0]) # nom
La méthode values()
La méthode values() renvoie un objet dict_values contenant les valeurs d'un dictionnaire.
Par exemple :
personne = {
'nom': 'dupont',
'prenom': 'jean',
'adresse': {
'ville': 'paris'
}
}
print(personne.values()) # dict_values(['dupont', 'jean', {'ville': 'paris'}])
Même chose, l'objet dict_values est une vue et n'est pas une liste. Il est également itérable :
personne = {
'nom': 'dupont',
'prenom': 'jean',
'adresse': {
'ville': 'paris'
}
}
for valeur in personne.values():
print(valeur)
La méthode items()
La méthode items() renvoie un objet dict_items contenant les clés et les valeurs d'un dictionnaire :
personne = {
'nom': 'dupont',
'prenom': 'jean',
'adresse': {
'ville': 'paris'
}
}
print(personne.items())
# dict_items([('nom', 'dupont'), ('prenom', 'jean'), ('adresse', {'ville': 'paris'})])
Pour itérer sur les clés et les valeurs nous utilisons souvent cette méthode :
personne = {
'nom': 'dupont',
'prenom': 'jean',
'adresse': {
'ville': 'paris'
}
}
for clé, valeur in personne.items():
print(f'La valeur de la clé "{clé}"" est "{valeur}"')