Écrire cles de valeur(d, v) renvoyant la liste des clés associées à la…
Application directe du cours · niveau 2 · NSI (première), chapitre 5 — Les dictionnaires · Itérer
Énoncé
Écrire cles_de_valeur(d, v) renvoyant la liste des clés associées à la valeur v. Pourquoi une liste, et non une clé ?
Corrigé
def cles_de_valeur(d, v):
"""Liste des cles de d associees a la valeur v (eventuellement vide)."""
return [cle for cle, valeur in d.items() if valeur == v]
ages = {"Nour": 17, "Camille": 16, "Yanis": 17}
assert cles_de_valeur(ages, 17) == ["Nour", "Yanis"]
assert cles_de_valeur(ages, 16) == ["Camille"]
assert cles_de_valeur(ages, 99) == []
Parce que les valeurs ne sont pas uniques : deux élèves ont ans. Renvoyer une seule clé obligerait à choisir, donc à perdre — c'est exactement ce qui arrive à inverse. La liste vide couvre le cas « aucune clé » sans cas particulier : pas de None à tester chez l'appelant.
Les autres exercices de ce chapitre Le cours du chapitre
Un blocage sur cet exercice ? Le tuteur d'Adloun guide par questions, sans donner la réponse.