USJ-ESIB
Département des classes
préparatoires Informatique 2
Mathématiques Spéciales
Dernière mise à jour juillet 2024
Informatique 2 Chapitre 2: Dictionnaires
Plan du cours
1. Rappel des notions de base du langage Python
2. Dictionnaires
3. Ensembles (sets)
4. Notions avancées sur les variables et les fonctions
5. Gestion des exceptions
6. Programmation orientée objets
7. Introduction à la programmation Web
DCP – Math Spé 2
Informatique 2 Chapitre 2: Dictionnaires
Chapitre 2 : Dictionnaires
• Définition
• Création d’un dictionnaire
• Modification et suppression d’éléments
• Méthodes de parcours
• Les dictionnaires en compréhension
DCP – Math Spé 3
Informatique 2 Chapitre 2: Dictionnaires
Dictionnaires : Définition
• Un dictionnaire est un objet mutable de la classe dict qui contient un ou
plusieurs éléments.
• Un élément d’un dictionnaire est constitué d'une clé et d'une valeur (key/value
pair).
• Les éléments d'un dictionnaire n'ont pas d'indices. L'accès à un élément se fait
avec sa clé.
• La clé peut être de n'importe quel type mais non mutable.
• Une clé est unique dans un dictionnaire.
• La valeur peut être de n'importe quel type et pourrait être modifiée.
DCP – Math Spé 4
Informatique 2 Chapter 1: Rappel – Notions de base
Dictionnaires : Création
• Pour créer un dictionnaire, on utilise une paire d’accolades { }.
• Dictionnaire vide: d = {} ou en utilisant le constructeur de la classe dict : d = dict().
• Création d’un dictionnaire contenant un élément :
math_notes = {'Sami’: 14}
clé valeur
• Création d’un dictionnaire contenant deux éléments :
math_notes = {'Sami’: 14, 'Karim’: 12 }
5
DCP – Math Spé 5
Informatique 2 Chapter 1: Rappel – Notions de base
Dictionnaires : Ajout, modification et suppression d’éléments
• L’ajout d’éléments dans un dictionnaire se fait avec la syntaxe : mon_dict [cle] = valeur
• math_notes['Lara’] = 9 math_notes → math_notes = {'Sami':14, 'Karim': 12, 'Lara':9 }
• Modification : la clé dans un dictionnaire ne peut pas être modifiée. Pour modifier la valeur d’une clé
existante : mon_dict [cle] = nouvelle_valeur
• Suppression d’éléments :
• Avec le mot clé del :
• placard = {"chemise":3, "pantalon":6, "tee shirt":7}
• del placard["chemise"]
• placard→{"pantalon": 6, "tee shirt" : 7}
• Avec la méthode pop de la classe dict :
• La méthode pop supprime l’élément du dictionnaire et renvoie la valeur correspondante.
• placard = {"chemise": 3, "pantalon": 6, "tee shirt": 7}
• n = placard.pop("chemise"), n→3, placard→{"pantalon": 6, "tee shirt": 7}
• La fonction len permet de retourner le nombre d’éléments d’un dictionnaire: len(placard)→2
DCP – Math Spé 6
Informatique 2 Chapitre 2: Dictionnaires
Dictionnaires : Test d’appartenance
• L’opérateur in permet de tester l’appartenance d’un élément à un
dictionnaire. L’expression elt in d rend True si elt appartient au
dictionnaire d et False sinon.
• L’opérateur not in permet de tester la non appartenance d’un
élément à un dictionnaire. L’expression elt not in d rend True si elt
n’appartient pas au dictionnaire d et False sinon.
DCP – Math Spé 7
Informatique 2 Chapitre 2: Dictionnaires
Dictionnaires vs listes
• Supprimer un élément du • Supprimer un élément
dictionnaire: d'une liste
• dic = {0:'a', 1:'b', 2:'c', 3:'d'}
• liste = ['a', 'b', 'c', 'd']
• del(dic[0]) → ={1:'b', 2:'c', 3:'d'}
▪ dic[0] n'existe plus • del(liste[0]) → ['b', 'c', 'd']
• liste[0] → 'b'
DCP – Math Spé 8
Informatique 2 Chapitre 2: Dictionnaires
Dictionnaires : Méthodes de parcours
fruits = {'pomme’: 21, 'melons’: 3, 'poires’: 31}
• Parcours des clés : • Parcours des clés et des valeurs
for nomFruit in fruits.keys():
print(nomFruit) simultanément:
Ou tout simplement : for nomFruit, valeur in fruits.items():
for nomFruit in fruits: print (f 'clé {nomFruit} contient {valeur}')
print(nomFruit)
• Parcours des valeurs :
for valeur in fruits.values():
print(valeur)
On n’utilise pas de boucle while avec un dictionnaire, car ses éléments ne sont pas ordonnés.
DCP – Math Spé 9
Informatique 2 Chapitre 2: Dictionnaires
Entre dictionnaires, listes et tuples
▪ On peut créer une liste avec les clés d’un dictionnaire en utilisant le
constructeur de la classe list :
• fruits = {"pomme":21, "melons":3, "poires":31}
• liste = list(fruits)
liste→['pomme', 'melons', 'poires']
▪ De même, on peut créer un tuple avec les clés d’un dictionnaire en
utilisant le constructeur de la classe tuple :
• fruits = {"pomme": 21, "melons": 3, "poires": 31}
• t = tuple(fruits)
t → ('pomme', 'melons', 'poires')
DCP – Math Spé 10
Informatique 2 Chapitre 2: Dictionnaires
Les dictionnaires en compréhension
• Les dictionnaires en compréhension sont une fonctionnalité puissante en
python. Ils permettent de créer rapidement et efficacement des dictionnaires
en spécifiant leurs éléments à l'aide d'une syntaxe concise et intuitive.
• Syntaxe :
• d = {cle: valeur for element in sequence (condition)}
▪ cle : définit la clé du dictionnaire pour chaque élément de la séquence.
▪ valeur : définit la valeur associée à la clé pour chaque élément de la séquence.
▪ element : variable temporaire qui prend successivement les valeurs de la séquence.
▪ sequence : séquence d'éléments sur laquelle on itère pour créer le dictionnaire.
▪ (condition): C'est une clause conditionnelle optionnelle qui vous permet de filtrer les
éléments de la séquence en fonction d'une condition. Si la condition est vraie, l'élément
est inclus dans le dictionnaire ; sinon, il est ignoré.
DCP – Math Spé 11
Informatique 2 Chapitre 2: Dictionnaires
Les dictionnaires en compréhension
• Les dictionnaires en compréhension sont une fonctionnalité puissante en
python. Ils permettent de créer rapidement et efficacement des dictionnaires
en spécifiant leurs éléments à l'aide d'une syntaxe concise et intuitive.
• Exemples :
▪ squares = {x: x**2 for x in range(1, 6)}
• # Résultat : squares = {1: 1, 2: 4, 3: 9, 4: 16, 5: 25}
▪ squares2 = {nombre: nombre * 2 for nombre in range(1, 6) if nombre % 2 == 0}
• # Résultat : squares2 ={2: 4, 4: 8}
▪ original_dict = {'a': 30, 'b': 60, 'c': 90, 'd': 45}
filtered_dict = {key: value for key, value in original_dict.items() if value > 50}
• # Résultat : filtered_dict = {'b': 60, 'c': 90}
▪ text = "programmation"
letter_count = {letter: text.count(letter) for letter in text}
• # Résultat : letter_count = {'p': 1, 'r': 2, 'o': 1, 'g': 2, 'a': 2, 'm': 2, 't': 1, 'i': 1, 'n': 2}
DCP – Math Spé 12
Informatique 2 Chapitre 2: Dictionnaires
Les dictionnaires en compréhension
• Les dictionnaires en compréhension sont une fonctionnalité puissante en
python. Ils permettent de créer rapidement et efficacement des dictionnaires
en spécifiant leurs éléments à l'aide d'une syntaxe concise et intuitive.
• Exemples :
▪ original_dict = {'a': 1, 'b': 2, 'c': 3}
flipped_dict = {value: key for key, value in original_dict.items()}
• # Résultat : flipped_dict = {1: 'a', 2: 'b', 3: ‘c’}
▪ d ={n: len(n) for n in ["chat", "chien", "poisson"]}
• # Résultat : d = {'chat': 4, 'chien': 5, 'poisson': 7}
DCP – Math Spé 13
Informatique 2 Chapitre 2: Dictionnaires
Les dictionnaires en compréhension
• Les dictionnaires en compréhension sont une fonctionnalité puissante en python. Ils
permettent de créer rapidement et efficacement des dictionnaires en spécifiant
leurs éléments à l'aide d'une syntaxe concise et intuitive.
• Syntaxe :
d = {cle: valeur_si_vrai if condition else valeur_si_faux for element in sequence}
▪ cle : C'est l'expression qui définit la clé du dictionnaire pour chaque élément dans l'itérable.
▪ valeur_si_vrai : C'est l'expression qui définit la valeur associée à la clé lorsque la condition est
vraie.
▪ condition : C'est la condition qui détermine quelle expression (valeur_si_vrai ou valeur_si_faux)
est utilisée pour chaque élément.
▪ valeur_si_faux : C'est l'expression qui définit la valeur associée à la clé lorsque la condition est
fausse.
▪ element : C'est une variable temporaire qui prend successivement les valeurs de la séquence.
▪ sequence : C'est l'itérable sur lequel vous itérez pour créer le dictionnaire.
DCP – Math Spé 14
Informatique 2 Chapitre 2: Dictionnaires
Les dictionnaires en compréhension
• Les dictionnaires en compréhension sont une fonctionnalité puissante en
python. Ils permettent de créer rapidement et efficacement des dictionnaires
en spécifiant leurs éléments à l'aide d'une syntaxe concise et intuitive.
• Syntaxe :
d = {cle: valeur_si_vrai if condition else valeur_si_faux for element in sequence}
• Exemples
▪ nombres = {'a': 3, 'b': -5, 'c': 2, 'd': -8}
valeurs_absolues = {cle: valeur if valeur >= 0 else -valeur for cle, valeur in nombres.items()}
• # Résultat : valeurs_absolues = {'a': 3, 'b': 5, 'c': 2, 'd': 8}
▪ etudiants = {'Alice': 92, 'Bob': 78, 'Eva': 96, 'David': 85}
resultat = {nom: 'Réussi' if note >= 90 else 'Échoué' for nom, note in etudiants.items()}
• # Résultat : resultat = {'Alice': 'Réussi', 'Bob': 'Échoué', 'Eva': 'Réussi', 'David': 'Échoué'}
DCP – Math Spé 15
Informatique 2 Chapitre 2: Dictionnaires
Fusion de dictionnaires
• En Python 3.9 et versions ultérieures, l'opérateur « | » (ou "bitwise OR") a été
introduit pour faciliter la fusion de dictionnaires de manière intuitive et
concise.
• En utilisant dict1 | dict2, un nouveau dictionnaire est créé en combinant les
clés et les valeurs des deux dictionnaires, dict1 et dict2.
• Si une clé est présente dans les deux dictionnaires, la valeur de la clé dans le
dictionnaire situé à droite de l'opérateur « | » l'emporte et remplace celle du
dictionnaire de gauche.
• Exemple: si dict1 = {'a': 1, 'b': 2} et dict2 = {'b': 3, 'c': 4}, alors dict1 | dict2
donnera {'a': 1, 'b': 3, 'c': 4}
DCP – Math Spé 16
Informatique 2 Chapitre 2: Dictionnaires
Liens utiles
• Python Dictionary Comprehension (programiz.com)
• Python Dictionary Comprehension – GeeksforGeeks
• Dictionary Comprehension - Create Complex Data Structures Step by
Step - YouTube
DCP – Math Spé 17