Résolue

Dictionnaire get

# Dictionnaires

je ne vois pas pk cela ne fonctionne pas, alors que la clé prénom existe

au passage on ne peut plus consulter les anciennes questions sur chaque video.

ni meme utilisé la touche bug, car la remarque que l on veut ecrire est en blanc, donc invisible

Bonsoir,

ce que je comprends dans la définition de .get c'est le premier paramètre c'est la clé (key) et le second (optionnel) c'est le message d'erreur si la clé n'est pas trouvé.


Mais dans ton cas, la clé c'est 0 ou 1 ou 2 et leurs valeurs sont un autre dictionnaire.

Je pense qu'il faut d'abord extraire le dictionnaire des valeurs puis faire le .get sur le dictionnaire que tu as récupéré.


exemple de code:

dico = {
    0: {"prénom": "Aurélien",
        "métier": "plombier",
        "ville": "Toulon"}
}

for valeur in dico.values():
    dico2 = valeur

print(dico2.get("prénom"))

Thibault houdon

Mentor

Salut Aurélien,


Effectivement, la méthode get ne recherche qu'au premier niveau du dictionnaire. Dans ce cas, tu peux récupérer donc uniquement les clés 0, 1 et 2.


Si tu veux rechercher dans le deuxième niveau, il faut ainsi d'abord récupérer le dictionnaire associé à une des clés 0, 1 ou 2 :


dico = {

0: {"prénom": "Aurélien", "métier": "plombier", "ville": "Toulon"},
1: {"prénom": "Laura", "metier": "ch", "ville": "Marseille"},
2: {"prénom": "Aaron", "metier": "écolier", "ville": "toulon"}

}

print(dico[0].get("prénom", "la clé n'existe pas "))
# Ou avec get 
print(dico.get(0).get("prénom", "la clé n'existe pas "))


Et oui effectivement pour les questions il faut que je les rajoute, j'ai oublié avec le changement d'interface (et la fenêtre de bug aussi, je corrige, merci pour le signalement !)

super merci a vous 2!

hello Thibault , mais si je ne sais pourquoi 0 existe plus est donne une erreur y'a pas un moyen d'utiliser aussi get pour le premier niveau et aussi pour le 2ème ?

Gabriel Trouvé

Mentor

Salut Nolan,

Tu parles de faire ça ?

Sinon si je del la clé 0 et que je fais ça :

C'est comme faire un .get sur None car comme 0 n'existe pas, le get(0) renvoie None.

Par contre on pour te montrer un truc un peu farfelu (lol), imagine que même si 0 n'existe pas, mais que le get renvoie un dictionnaire, tu peux refaire un get techniquement ahah.

Inscris-toi

(c'est gratuit !)

Inscris-toi

Tu dois créer un compte pour participer aux discussions.

Créer un compte

Rechercher sur le site

Formulaire de contact

Inscris-toi à Docstring

Pour commencer ton apprentissage.

Tu as déjà un compte ? Connecte-toi.