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'}