Adloun

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 immuable frozenset({1, 2}).
  • frozenset({1, 2}) : Accepté. Cet ensemble figé est immuable.

Exercices semblables

Le cours du chapitre · Tous les exercices du chapitre