1.5. Les dictionnaires

Les dictionnaires sont également des listes, sauf que chaque élément est une paire clé-valeur. - La syntaxe des dictionnaires est {key1: value1, …}: - chaque clé est unique - mutables

mois ={ 'Jan ':31 , 'Fev ':28 , 'Mar ':31}
print(type(mois))
print(mois)
<class 'dict'>
{'Jan ': 31, 'Fev ': 28, 'Mar ': 31}
mois.keys()
dict_keys(['Jan ', 'Fev ', 'Mar '])
mois.values()
dict_values([31, 28, 31])
mois.items()
dict_items([('Jan ', 31), ('Fev ', 28), ('Mar ', 31)])

Suppression d’une clé :

del mois['Mar ']  # supprimer une clé 
print(mois)
{'Jan ': 31, 'Fev ': 28}

Test de présence d’une clé

"Fev " in mois # Test de présence d’une clé
True

1.5.1. Fonctions pratiques

1.5.1.1. Update : mise à jour d’un dictionnaire avec les éléments d’un autre dictionnaire

Si vous souhaitez mettre à jour un dictionnaire avec des éléments provenant d’un autre dictionnaire ou d’un itérable de paires clé/valeur, utilisez la méthode update.

Notes = {"Pierre": 6}
Nouvelle_notes = {"Marie": 16, 'Jean': 10}
Notes.update(Nouvelle_notes)
Notes.update(Julie=13, Michel=9)
Notes
{'Pierre': 6, 'Marie': 16, 'Jean': 10, 'Julie': 13, 'Michel': 9}

1.5.1.2. Paramètre clé dans Max() : Trouver la clé ayant la plus grande valeur

Appliquer max sur un dictionnaire Python vous donnera la clé la plus grande, et non la clé avec la plus grande valeur. Si vous voulez trouver la clé ayant la plus grande valeur, spécifiez-la en utilisant le paramètre key dans la méthode max.

Notes = {'Pierre': 6, 'Marie': 16, 'Jean': 10, 'Julie': 13, 'Michel': 9}

max(Notes)
'Pierre'
max_val = max(Notes, key=lambda k: Notes[k])
max_val
'Marie'

1.5.1.3. dict.get : Obtenir la valeur par défaut d’un dictionnaire si une clé n’existe pas

Si vous voulez obtenir la valeur par défaut lorsqu’une clé n’existe pas dans un dictionnaire, utilisez dict.get. Dans le code ci-dessous, puisqu’il n’y a pas de clé Cours3, la valeur par défaut Anglais est retournée.

Cours = {'Cours1': 'Français', 'Cours2': 'Mathématique'}
Cours.get('Cours1', 'Anglais')
'Français'
Cours.get('Cours3', 'Anglais')
'Anglais'

1.5.1.4. dict.fromkeys: Obtenir un dictionnaire à partir d’une liste et d’une valeur

Si vous voulez obtenir un dictionnaire à partir d’une liste et d’une valeur, essayez dict.fromkeys.

Informatique = ['Clavier', 'Ecran', 'Souris', 'Disque dur']
Courses = ['Pâtes', 'Jus', 'Salade']
Lieu1 = 'Fnac'
Lieu2 = 'Auchan'

On peut utiliser dict.fromkeys pour créer un dictionnaire des lieux pour les produits Informatique :

Informatique_lieu = dict.fromkeys(Informatique, Lieu1)
Informatique_lieu
{'Clavier': 'Fnac', 'Ecran': 'Fnac', 'Souris': 'Fnac', 'Disque dur': 'Fnac'}

dictionnaire pour lieu des courses :

Courses_lieu = dict.fromkeys(Courses, Lieu2)
Courses_lieu
{'Pâtes': 'Auchan', 'Jus': 'Auchan', 'Salade': 'Auchan'}

Ces 2 résultats peuvent être combinés dans un dictionnaire commun :

Lieux = {**Informatique_lieu, **Courses_lieu}
Lieux
{'Clavier': 'Fnac',
 'Ecran': 'Fnac',
 'Souris': 'Fnac',
 'Disque dur': 'Fnac',
 'Pâtes': 'Auchan',
 'Jus': 'Auchan',
 'Salade': 'Auchan'}