Écrire associer(cles, valeurs) qui construit le dictionnaire associant…
Exercice d'entraînement · niveau 2 · NSI (première), chapitre 5 — Les dictionnaires · Construire et modifier
Énoncé
Écrire associer(cles, valeurs) qui construit le dictionnaire associant cles[i] à valeurs[i]. Que faire si une clé est répétée ?
Corrigé
def associer(cles, valeurs):
"""Dictionnaire associant cles[i] a valeurs[i].
Precondition : meme longueur. Si une cle est repetee, la DERNIERE
valeur l'emporte, et le resultat est plus court que les
tableaux -- la postcondition le dit.
"""
assert len(cles) == len(valeurs), "longueurs differentes"
d = {}
for i in range(len(cles)):
d[cles[i]] = valeurs[i]
assert len(d) <= len(cles)
return d
assert associer(["a", "b"], [1, 2]) == {"a": 1, "b": 2}
assert associer(["a", "a"], [1, 2]) == {"a": 2}
assert associer([], []) == {}
La précondition sur les longueurs est indispensable : sans elle, des tableaux inégaux donneraient IndexError — ou pire, un résultat silencieusement tronqué si l'on avait écrit zip. La postcondition len(d) <= len(cles) est une inégalité, et c'est ce qui la rend honnête : promettre l'égalité serait faux dès qu'une clé se répète.
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.