|
- Chapitre 8 - Dictionnaires
- ==========================
-
- Définition
- ----------
-
- Un dictionaire est une *association* entre des clés et des valeurs.
-
- * Les clés sont uniques
- * Les valeurs sont arbitraires
-
- Création de dictionnaires
- -------------------------
-
- Avec des accolades: ``{``, ``}`` ::
-
- dictionaire_vide = {}
-
- une_clé_une_valeur = {"a": 42}
-
- deux_clés_deux_valeurs = {"a": 42, "b": 53}
-
- Note: tous les dictionnaires sont truthy, sauf les dictionnaires vides.
-
- Accès aux valeurs
- ------------------
-
- Avec ``[]``, comme pour les listes, mais avec une *clé* à la place d'un *index*::
-
- scores = {"john": 10, "bob": 42}
-
- print(scores["john"])
- # affiche: 10
-
- print(scores["bob"])
- # affiche: 42
-
- print(scores["charlie"])
- # erreur: KeyError
-
- Test d'appartenance
- ---------------------
-
- Avec ``in``, comme le listes::
-
- scores = {"john": 10, "bob": 42}
- print("charlie" in scores)
- # affiche: False
-
- Modifier la valeur d'une clé
- -----------------------------
-
- Comme pour les listes, avec une assignation::
-
- scores = {"john": 10, "bob": 42}
- scores["john"] = 20
- print(scores)
- # affiche: {"john": 20, "bob": 42}
-
- Créer une nouvelle clé
- -----------------------
-
- Même mécanisme que pour la modification des clés existantes::
-
- scores = {"john": 10, "bob": 42}
- scores["charlie"] = 30
- print(scores)
- # affiche: {"john": 20, "bob": 42, "charlie": 30}
-
- *rappel*: ceci ne fonctionne pas avec les listes: on ne peut
- pas "créer" de nouveaux éléments dans la liste juste
- avec un index::
-
- ma_liste = ["a", "b"]
- ma_liste[1] = "c"
- print(ma_liste)
- # affiche: ["a", "c"]
-
- ma_liste[3] = "d"
- # erreur: IndexError
-
- Itérer sur les clés
- -------------------
-
- Avec ``for ... in ...``, comme pour les listes::
-
- scores = {"john": 10, "bob": 42}
- for nom in scores:
- # on assigne la valeur "john" à la variable `nom`, puis "bob"
- score_associé_au_nom = scores[nom]
- # on assigne la valeur 10 puis la valeur 42 à la variable
- # score_associé_au_nom
- print(nom, score_associé_au_nom)
-
- .. code-block::
-
- john 10
- bob 42
-
- del
- ---
-
- Détruire une clé
- +++++++++++++++++
-
- Avec ``del`` - un nouveau mot-clé::
-
- scores = {"john": 10, "bob": 42}
- del scores["bob"]
- print(scores)
- # affiche: {"john": 10}
-
- Détruire un élément d'une liste
- ++++++++++++++++++++++++++++++++
-
- Aussi avec ``del``::
-
- fruits = ["pomme", "banane", "poire"]
- del fruits[1]
- print(fruits)
- # affiche: ["pomme", "poire"]
-
- Détruire une variable
- +++++++++++++++++++++
-
- Encore et toujours ``del``::
-
- mon_entier = 42
- mon_entier += 3
- print(mon_entier)
- # affiche: 45
-
- del mon_entier
- mon_entier += 1
- # erreur: NameError
-
-
- Comparaisons de dictionaires
- -----------------------------
-
- Deux dictionaires sont considérés égaux s'ils ont les mêmes clés
- et les mêmes valeurs. L'ordre n'importe pas::
-
- {"a":1, "b":2} == {"a":1, "b":2} # True
- {"a":1, "b":2} == {"b":2, "a":1} # True
- {"a":1, "b":2} == {"a":1, "b":3} # False
|