11. Associer - dict

Un dictionnaire est une structure de données qui, comme une liste, contient plusieurs éléments, mais qui est plus puissante. Dans une liste les indices sont des entiers. Dans un dictionnaire les indices peuvent être de n’importe quel type immuable (entier, nombre, texte). Nous allons voir que :

  • un dictionnaire est composé de paires clé:valeur,

  • l’expression dico[clé] renvoie la valeur associée à la clé,

  • la méthode dico.get(clé, défaut) renvoie la valeur ou son défaut.

Question

L’expression dict([(1, 2)]) est un dictionnaire




11.1. Un dictionnaire de mots

Un dictionnaire classique associe un mot d’une langue au mot correspondant d’une autre langue. Nous pouvons utiliser la structure du dictionnaire en Python de cette façon et l’utiliser pour associer des mots en français à des mots d’une autre langue.

De façon générale, un dictionnaire associe une série de clés à une autre série de valeurs. Toutes les clés d’un dictionnaire sont uniques.

Nous pouvons très bien définir un deuxième dictionnaire.

11.2. Traduire une phrase

À l’aide d’un dictionnaire, nous pouvons traduire maintenant toute une phrase. Pour pouvoir accéder à chaque mot d’une phrase, nous allons découper la phrase en mots en utilisant la méthode split(). Nous obtenons alors une liste qui contient les mots de la phrase.

À l’aide d’une boucle for nous pouvons traduire la phrase entière.

Exercice 1

Avec les mots donnés dans le dictionnaire, faites une nouvelle phrase.

11.3. Traduire un texte

Un texte est constitué de plusieurs lignes. Pour découper un texte multiligne en lignes, nous utilisons de nouveau la méthode split('\'), mais cette fois avec un séparateur (newline).

Nous pouvons maintenant traduire un texte de plusieurs lignes.

11.4. Traduire en code Morse

Le code Morse est composé de points et de traits. Il associe à chaque lettre de l’alphabet un code.

../_images/Morse.jpg

Un autre exemple pour un dictionnaire est la table du code Morse.

Maintenant nous pouvons traduire une phrase entière. Ici nous devons faire attention aux espaces :

  • les caractères sont séparés par 2 espaces,

  • les mots sont séparés par 4 espaces.

Exercice 2

Écrivez votre nom en Morse.

11.5. Système de login

L’exemple suivant simule le processus de login à un système informatique. Dans le dictionnaire passwords nous gardons les informations de connexion sous forme de paires user:password.

L’opérateur spécial in permet de tester si une clé donnée fait partie du dictionnaire.

Dans un premier temps on vérifie que l’utilisateur existe avec user in passwords. Dans un deuxième temps on vérifie si c’est le bon mot de passe avec pw == passwords[user].

Exercice 3

Essayez avec utilisateur mar, mark et les mots de passe 123, 1234.

11.6. Un dictionnaire de couleurs

Un spécialiste de la publication, de la mode, ou du web, utilise une centaine des mots spécifiques pour désigner un ton de couleur particulier. Ces couleurs peuvent être spécifiées avec les 3 couleurs de base : rouge, vert, bleu (RVB).

Nous pouvons utiliser un dictionnaire RVB pour associer des noms de couleurs à des triplets de nombres qui indiquent les 3 composantes RVB.

Exercice 4

Ajoutez 2-3 couleurs du domaine de la mode.

11.7. Compter des lettres

Avec un dictionnaire nous pouvons facilement compter les lettres dans un texte. Compter le nombre d’occurrences de quelque chose est appelé faire un histogramme.

Notre dictionnaire s’appelle histogram et au début il est vide. Les clés de l’histogramme sont des caractères que nous désignons par c.

Si le caractère c fait déjà partie de l’histogramme, alors on ajoute 1 au compte, sinon on met le compte à 1.

Nous constatons que la lettre l apparait 3 fois.

11.8. Faire un histogramme

Nous pouvons maintenant établir un histogramme sur un texte de plus grande taille.

11.9. Visualiser un histogramme

Pour visualiser cet histogramme, nous allons dessiner un diagramme de barres.

11.10. La fonction get()

Adresser une clé qui n’existe pas dans un dictionnaire produit une erreur de type KeyError.

La méthode get(clé, val_défaut) permet d’obtenir une valeur par défaut et d’éviter une erreur si la clé n’existe pas encore dans le dictionnaire.

Ceci nous permet de compacter encore davantage le programme de l’histogramme.

11.11. Color typewriter

Ce programme interactif permet d’écrire une image ligne par ligne en utilisant les 26 touches du clavier, comme une machine à écrire (typewriter).

Nous utilisons ici un dictionnaire pour associer une lettre à une couleur.