Les dictionnaires avec Python

Dictionnaires et méthodes avec Python

Avec Python, travailler avec de grands tableaux de deux dimensions (ou plus) tournerait vite au casse-tête sans l’aide des dictionnaires.

 

Dictionnaires

Un dictionnaire, en Python, est une structure de données qui permet de stocker des paires clé-valeur. La clé s’apparente à un mot dans votre dictionnaire préféré et la valeur à sa définition.

Exemple :

oeuvre = {
    "compositeur": "Beethoven",
    "nom": "Concerto pour piano et orchestre n°3",
    "opus": 37
    }

print(oeuvre["compositeur"])

On obtient :

Beethoven

Beethoven

compositeur, nom et opus sont les clés.

Avec un dictionnaire, il est rapide de trouver une donnée. Et surtout, une clé est explicite, contrairement à un indice !

 

Conversion en dictionnaire

Créons un dictionnaire à partir d’une liste de listes.

Prenons l’exemple de quatre commerciaux auxquels un certain nombre de clients sont rattachés.

commerciaux = [
["Ron", 230],
["Liz", 185],
["Luc", 180],
["Zoé", 210]
]

Une seule ligne de commande suffit :

comm_dico = {nom: clients for nom, clients in commerciaux}

Demandons combien de clients sont dans le portefeuille de Zoé…

print(comm_dico["Zoé"])

Nous obtenons :

210

 

Quatre méthodes

En Python, une méthode est une fonction spéciale, associée à un objet.

Par exemple, si l’on veut réécrire une variable texte en majuscules, on associe cette dernière à la méthode upper() en les séparant par un point.

texte.upper()

Ainsi il existe des méthodes de dictionnaires. Voyons-en quatre :

  • .items() est très utilisée pour parcourir les paires clé-valeur. Nous l’illustrerons ci-dessous.

  • .keys() : seulement les clés.

  • .values() : seulement les valeurs.

  • .get() récupère une valeur. Cette méthode sera elle aussi employée dans l’exemple ci-dessous.

 

Exemple

Explorons à présent une requête un peu plus élaborée. Sur une année, nos commerciaux voient leur nombre de clients évoluer. À chacun sont associées quatre valeurs (nombre de clients à chaque fin de trimestre). En utilisant un dictionnaire, nous déterminerons quel commercial a eu le plus de clients dans son portefeuille sur l’année et quelle est sa moyenne de clients (« le plus de clients » revient à déterminer la moyenne la plus élevée).

commercial

Nous partons d’un ensemble de listes.

clients = {
    "Ron": [230, 225, 226, 201],
    "Liz": [185, 189, 192, 195],
    "Luc": [180, 190, 192, 189],
    "Zoé": [210, 202, 210, 212]
    }

Initialisons un ensemble de moyennes.

moyennes = {}

Puis nous utilisons une boucle avec la méthode items() (nous parcourons le dictionnaire) qui renvoie une vue de tous les couples du dictionnaire.

for nom, liste_clients in clients.items():
    moyenne = sum(liste_clients) / len(liste_clients)
    moyennes[nom] = moyenne

À cette étape du script, nous avons créé un ensemble de couples nom-moyenne.

Cherchons maintenant à quel nom se rattache la meilleure moyenne.

meilleur = max(moyennes, key = moyennes.get)

print(f"Meilleure moyenne de l'année : {meilleur} avec une moyenne de {moyennes[meilleur] :.2f}")

Output :

Meilleure moyenne de l'année : Ron avec une moyenne de 220.50

Remarquez l’utilisation de f dans la dernière ligne. Nous employons une f-string pour insérer de façon très pratique des valeurs de variables dans une chaîne de caractères (on peut faire autrement mais c’est un peu laborieux).

À la fin, :.2f signifie que l’on souhaite un affichage de la valeur avec deux décimales.

 

dictionnaire Python