NSI (première) · Chapitre 5 · Application directe du cours
Pourquoi d 1, 2 = "x" échoue-t-il alors que d (1, 2) = "x" réussit
Les dictionnaires · Construire, lire, modifier · niveau 1 (application)
Énoncé
Pourquoi d[[1, 2]] = "x" échoue-t-il alors que d[(1, 2)] = "x" réussit ? Répondre en une phrase, en s'appuyant sur le chapitre 4, puis vérifier le message d'erreur exact.
Corrigé
Le dictionnaire range la valeur à un emplacement calculé à partir de la clé : une clé doit donc être non modifiable, or un tableau l'est — si on le modifiait après coup, la valeur resterait là où l'ancienne clé l'avait mise et deviendrait introuvable.
d = {}
try:
d[[1, 2]] = "x"
except TypeError as e:
assert str(e) == "unhashable type: 'list'"
d[(1, 2)] = "x"
assert d == {(1, 2): "x"}
Le mot unhashable nomme le mécanisme — le hachage — qui relève de la terminale ; ce qu'il faut retenir en première est la règle : p-uplet oui, tableau non.
100 % gratuit
Essaie le suivant avec le tuteur
- L'exercice suivant avec le tuteur, sans compte : il guide pas à pas, sans donner la réponse
- 16 autres exercices corrigés dans ce chapitre, et 20 à chercher avec le tuteur
- Le podcast et la vidéo du chapitre et la correction filmée du TD : 2 minutes sans compte
Sans compte : le cours, 2 minutes de podcast et de vidéo et un exercice avec le tuteur. Pour tout le reste : inscription gratuite en 30 secondes, sans carte bancaire.