informatique (tronc commun des prépas scientifiques) · Chapitre 17 · Application directe du cours
Hachable ou pas ?
Les dictionnaires dévoilés : le hachage · niveau 1 (application)
Énoncé
Déterminer si Python accepte les candidats-clés suivants : 3.14 ; "abc" ; [1, 2] ; (1, 2) ; (1, [2]) ; ((1,), "a") ; {1, 2} ; frozenset({1, 2}). Justifier par les règles d'admissibilité et proposer une alternative ("gel") pour chaque élément refusé.
Corrigé
3.14: Accepté. Les nombres flottants sont immuables."abc": Accepté. Les chaînes de caractères sont immuables.[1, 2]: Refusé. C'est une liste, qui est un type mutable. Alternative : la geler sous forme de tuple(1, 2).(1, 2): Accepté. C'est un tuple composé uniquement d'éléments immuables.(1, [2]): Refusé. Bien que le tuple soit en lui-même immuable, il contient une liste mutable. La mutabilité interne contamine l'ensemble. Alternative : geler la liste interne sous forme de tuple(1, (2,)).((1,), "a"): Accepté. C'est un tuple imbriqué ne contenant que des éléments immuables.{1, 2}: Refusé. C'est un ensemble mutable (set). Alternative : utiliser un ensemble immuablefrozenset({1, 2}).frozenset({1, 2}): Accepté. Cet ensemble figé est immuable.
Exercices semblables
- Le redimensionnement et son coût amorti corrigé
- L'ensemble, dictionnaire sans valeurs corrigé
- Étude — l'index des mots, de bout en bout corrigé
- Une table à la main corrigé
- Parcours et retournement corrigé