Dictionnaires
Contents
Dictionnaires#
Dans ce chapitre, nous aborderons le concept de dictionnaire. Le fil conducteur de ce chapitre sera de répliquer le tableau suivant:
Nom |
Age |
Profession |
---|---|---|
Christophe |
30 |
Enseignant |
Compte tenu des concepts abordés jusqu’o présent, nous pourrions utiliser deux listes : une première liste qui contient les attributs (théoriques), c-à-d le prénom, l’âge, et la profession, et une deuxième liste qui contient les valeurs, c-à-d Christophe, 30, et enseignant. Le code suivant permet d’implémenter cette approche
liste1 = ['Prenom', 'Age', 'Profession']
liste2 = ['Christophe', 30, 'Enseignant']
print(liste1[0], ":", liste2[0])
print(liste1[1], ":", liste2[1])
print(liste1[2], ":", liste2[2])
Prenom : Christophe
Age : 30
Profession : Enseignant
Après analyse de ce code, on comprend que pour afficher un élément particulier, il faut connaître sa position au sein de la liste. Dans l’exemple précédent, étant donné qu’il n’y a que 3 attributs, c’est facile. Mais quand serait-il si le nombre d’attributs augmentait?
Création d’un dictionnaire#
Les dictionnaires permettent de solutionner ce problème. Un dictionnaire est défini en Python à l’aide des accolades (curly brackets) { et }
. Un dictionnaire est composé de clés (les attributs théoriques) et de valeurs. Lors de la création du dictionnaire, il faut associer ces clés et ces valeurs.
Chaque clé est unique !
Créer un dictionnaire
informations
qui contient les informations mentionnées dans le tableau ci-dessus.
informations = {'Nom':'Christophe',
'Age': 30,
'Profession':'Enseignant'}
print("Nom:", informations['Nom'])
print("Age:", informations['Age'])
print("Profession:", informations['Profession'])
Nom: Christophe
Age: 30
Profession: Enseignant
Pour connaître la liste des clés du dictionnaire:
print("Keys:", informations.keys())
Keys: dict_keys(['Nom', 'Age', 'Profession'])
Pour connaître la liste des valeurs du dictionnaire
print("Values:", informations.values())
Values: dict_values(['Christophe', 30, 'Enseignant'])
Pour connaître les couples clés-valeurs du dictionnaire:
print("Items:")
print(informations.items())
Items:
dict_items([('Nom', 'Christophe'), ('Age', 30), ('Profession', 'Enseignant')])
Pour parcourir l’ensemble du dictionnaire:
for key, value in informations.items():
print(key, "-", value)
Nom - Christophe
Age - 30
Profession - Enseignant
Tout d’abord, il faut se rappeler que informations.items()
retourne des paires clé/valeur. C’est la raison pour laquelle, il y a deux éléments juste à côté du mot-clé for
, c-à-d key
et value
. Ensuite, ces deux variables sont affichées dans le print
.
Nous allons maintenant ajouter d’autres personnes dans le tableau :
Nom |
Age |
Profession |
---|---|---|
Christophe |
30 |
Enseignant |
Francois |
40 |
Directeur |
Juliette |
20 |
Etudiante |
prenoms = ['Christophe', 'Francois', 'Juliette']
ages = [30, 20, 40]
professions = ['Enseignant', 'Directeur', 'Etudiante']
informations = {'Nom': prenoms,
'Age': ages,
'Profession': professions}
for key, value in informations.items():
print(key, "-", value)
Nom - ['Christophe', 'Francois', 'Juliette']
Age - [30, 20, 40]
Profession - ['Enseignant', 'Directeur', 'Etudiante']
L’ensemble des informations est affichée mais pour revenir à un format qui ressemble d’avantage à un tableau, le code se complique considérablement.
for key in informations.keys():
print("%10s"%(key), end=" ")
print("")
for i in range(len(informations[key])):
for value in informations.values():
print("%10s"%(value[i]), end=" ")
print("")
Nom Age Profession
Christophe 30 Enseignant
Francois 20 Directeur
Juliette 40 Etudiante
Exercices#
Exercice 1#
Réaliser un script qui permet de compter le nombre d’occurences de chaque élément dans une liste.
Utiliser la liste suivante:
[2, 4, 3, 9, 5, 9, 0, 9, 2, 3, 9]
my_list = [2, 4, 3, 9, 5, 9, 0, 9, 2, 3, 9]
my_dict = {}
# compte le nombre de chaque element
for elem in my_list:
# s'il n'existe pas, on l'ajoute
# et on initialise le compteur a 1
if elem not in my_dict.keys():
my_dict[elem] = 1
# s'il existe deja, on augmente le compteur
else:
my_dict[elem] += 1
for key, value in my_dict.items():
print(key, "-", value)
2 - 2
4 - 1
3 - 2
9 - 4
5 - 1
0 - 1
Exercice 2#
Réaliser un script qui permet de trouver le mode d’une liste de valeurs (le mode est la valeur qui revient le plus fréquemment). Utiliser la liste définie précédemment. Le mode est donc le chiffre 9 qui apparaît 4 fois dans la liste.
my_list = [2, 4, 3, 9, 5, 9, 0, 9, 2, 3, 9]
my_dict = {}
for elem in my_list:
if elem not in my_dict.keys():
my_dict[elem] = 1
else:
my_dict[elem] += 1
# trouver ou value est le plus grand
max_val = list(my_dict.values())[0]
max_key = list(my_dict.keys())[0]
for key, value in my_dict.items():
if value > max_val:
max_val = value
max_key = key
print('mode', max_key, '-', max_val, 'occurences')
mode 9 - 4 occurences