Adloun

É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.