====== Python : les dictionnaires ====== ===== Présentation ===== Les **dictionnaires** permettent de mémoriser des informations en les associant à une **clé** qui est la plupart du temps une chaîne de caractères. Par exemple, un dictionnaire peut contenir un carnet d'adresses et on accède à chaque contact en précisant son nom. ===== Création d'un dictionnaire ===== Les parenthèses **()** délimitent les tuples, les crochets **[]** délimitent les listes et les accolades **{}** délimitent les dictionnaires. ==== Création d'un dictionnaire ==== Première méthode : >>> carnet_adresse = dict() >>> type(carnet_adresse) {} >>> Deuxième méthode : >>> carnet_adresse = {} >>> type(carnet_adresse) {} >>> ==== Ajout de valeurs ==== Pour **ajouter** une valeur, il faut préciser la **clé** et la valeur **associée** : >>> carnet = {} >>> carnet["nom"] = "Dupond" >>> carnet["prenom"] = "Jean" >>> carnet {'nom': 'Dupond', 'prenom': 'Jean'} >>> * on indique entre crochets la clé à laquelle on souhaite accéder. * Si la clé n'existe pas, elle est ajoutée au dictionnaire avec la valeur spécifiée après le signe =. * Sinon, l'ancienne valeur à l'emplacement indiqué est remplacée par la nouvelle. ==== Accès à une valeur ==== Pour accéder à une valeur, on utilise la clé associée : >>> carnet["nom"] 'Dupond*' >>> Si la **clé n'existe pas** dans le dictionnaire, cela génère une **erreur**. Il est possible de tester au préalable l'existence d'une clé de cette façon : >>> "nom" in carnet True >>> "adresse" in carnet False On peut utilisé comme clé, des chaînes de caractères (comme précédemment), des entiers, des listes ou les toris à la fois selon les besoins. Par exemple : * utilisation d'entiers pour les clés : >>> mon_dictionnaire = {} >>> mon_dictionnaire[0] = "a" >>> mon_dictionnaire[1] = "e" >>> mon_dictionnaire[2] = "i" >>> mon_dictionnaire[3] = "o" >>> mon_dictionnaire[4] = "u" >>> mon_dictionnaire[5] = "y" >>> mon_dictionnaire {0: 'a', 1: 'e', 2: 'i', 3: 'o', 4: 'u', 5: 'y'} >>> * utilisation de tuples pour les clés : echiquier = {} echiquier[('a', 1)] = "tour blanche" # En bas à gauche de l'échiquier echiquier[('b', 1)] = "cavalier blanc" # À droite de la tour ==== Création de dictionnaires préremplis ==== note = {"maths":12, "anglais":15, "histoire":13} ==== Supprimer des clés d'un dictionnaire ==== * avec le mot-clé **del** : del carnet["nom"] * avec la méthode de dictionnaire **pop** ; qui renvoie alors la valeur supprimée : carnet.pop("nom") ==== Parcourir un dictionnaire ==== * parcourir la liste de **clés** : >>> carnet {'nom': 'Dupond', 'prenom': 'Jean', ('prenom', 2): 'Jean dominique'} >>> for cle in carnet: ... print(cle) ... nom prenom ('prenom', 2) >>> Les clés ne s'affichent pas forcément dans l'ordre dans lequel on les a entrées car les dictionnaires n'ont pas de structure ordonnée. * Parcours des **valeurs** du dictionnaire avec la méthode **values()** : >>> for valeur in carnet.values(): ... print(valeur) ... Dupond Jean Jean dominique >>> La méthode values() permet aussi de faire des tests d'existence d'une valeur dans un dictionnaire : >>> if "Dupond" in carnet.values(): ... print("Le nom Dupond est déjà présent dans le carnet d'adresse.") ... Le nom Dupond est déjà présent dans le carnet d'adresse. >>> ==== Parcours des clés et valeurs simultanément ==== Pour obtenir à la fois la liste des clés et leur valeur, on utilise la méthode **items()** qui renvoie une liste de tuples contenant couples **clé : valeur**. >>> for cle,valeur in carnet.items(): ... print("La clé {} contient la valeur {}.".format(cle, valeur)) ... La clé nom contient la valeur Dupond. La clé prenom contient la valeur Jean. La clé ('prenom', 2) contient la valeur Jean dominique. >>> ==== Retour au cours : Les instructions du langage Python ==== * [[.:c_langage_python|Cours : Les instructions du langage Python]]