Dans cette partie de cours, on va découvrir les l’utilisation des dictionnaires en python ( Python : Les dictionnaires). En effet, ils peuvent traduire les structures (les enregistrements ) en algorithmique.
Définition et Utilisation
Un dictionnaire est une collection de données non ordonnée, modifiable et n’autorisant pas les doublons. En effet, un dictionnaire permet de stocker une valeur en lui associant une clé, et fournissant un accès très rapide à la valeur à partir de la clé.
Le dictionnaire Python fonctionne de la même manière qu’un dictionnaire bilingue. Par exemple, on a un mot français et on a besoin de son équivalent en arabe. On parcourt le dictionnaire afin de trouver le mot et finalement on l’obtient. Ensuite, on vérifie l’homologue arabe.
Dans le monde de Python, le mot qu’on recherche est nommé key et le mot qu’on obtient du dictionnaire est appelé value. Cela signifie qu’un dictionnaire est un ensemble de paires clé-valeur.
Exemple :
Remarque :
- Chaque clé doit être unique
- Une clé peut être des données de tout type(sauf liste) : elle peut être un nombre (entier ou flottant), voire une chaîne, un tuple ;
- Un dictionnaire n’est pas une liste : une liste contient un ensemble de valeurs numérotées, tandis qu’un dictionnaire contient des paires de valeurs;
- La fonction len() fonctionne également pour les dictionnaires – elle renvoie le nombre d’éléments de valeur-clé dans le dictionnaire;
- Un dictionnaire est un outil à sens unique: si on a un dictionnaire anglais-français, on peut rechercher des équivalents français de termes anglais, mais pas l’inverse.
Syntaxe :
Chaque dictionnaire est un ensemble de paires clé-valeur. On peut le créer en utilisant la syntaxe suivante:
myDictionary = { key1 : value1,
key2 : value2,
key3 : value3,…
}
Exemple :
dict1 = {"cat" : "chat", "dog" : "chien", "horse" : "cheval"}
dict2 = {}#dictionnaire vide
print(dict1)
print(dict2)
Remarque : Pour copier un dictionnaire, utilisez la copy() méthode
Opérations sur les dictionnaires
- Accès aux éléments :
- Pour obtenir une des valeurs, on doit fournir une valeur de clé valide.
Exemple : print(dict1[‘cat’]) |
Résultats : chat |
Il existe également une méthode appelée get () qui vous donnera le même résultat:
print(dict1.get(‘cat’))
· Utiliser la méthode keys() :
Cette méthode renvoie un objet itérable composé de toutes les clés rassemblées dans le dictionnaire. Avoir un groupe de clés nous permet d’accéder à l’ensemble du dictionnaire de manière simple et pratique.
Exemple :
dict1 = {"cat" : "chat", "dog" : "chien", "horse" : "cheval"}
for key in dict1.keys():
print(key, "->", dict1[key])
Remarque : La fonction sorted()
Pour avoir les résultats triés, il suffit d’enrichir la boucle for pour obtenir une telle forme :
for key in sorted(dict1.keys()):
· les méthodes items() et values()
Une autre façon est basée sur l’utilisation d’une méthode de dictionnaire nommée items(). La méthode renvoie des tuples où chaque tuple est une paire clé-valeur. Voilà comment cela fonctionne :
dictionary = {"cat" : "chat", "dog" : "chien", "horse" : "cheval"}
for english, french in dictionary.items():
print(english, "->", french)
Il existe également une méthode nommée values(), qui fonctionne de manière similaire à keys(), mais renvoie des valeurs . Voici un exemple simple:
dictionary = {"cat" : "chat", "dog" : "chien", "horse" : "cheval"}
for fr in dictionary.values():
print(fr)
Le dictionnaire n’étant pas en mesure de trouver automatiquement une clé pour une valeur donnée, le rôle de cette méthode est plutôt limité.
Remarque : Vérifier si la clé existe
Pour déterminer si une clé spécifiée est présente dans un dictionnaire, utilisez le mot clé in:
if “cat” in dict1:
print(“cette clé existe!”)
2- Modifier et ajouter des valeurs
Comme les dictionnaires sont entièrement modifiables, il n’y a aucun obstacle à les modifier.
Exemple :
dictionary = {"cat" : "chat", "dog" : "chien", "horse" : "cheval"}
dictionary['cat'] = 'minou'
print(dictionary)
On peut aussi, utiliser la méthode update () ; elle mettra à jour le dictionnaire avec les éléments de l’argument donné. L’argument doit être un dictionnaire ou un objet itérable avec des paires clé: valeur.
dictionary.update({'cat': 'minou'})
3- Ajout d’une nouvelle clé
L’ajout d’un élément au dictionnaire se fait en utilisant une nouvelle clé et en lui attribuant une valeur. Exemple :
dictionary = {"cat" : "chat", "dog" : "chien", "horse" : "cheval"}
dictionary['swan'] = 'cygne'
print(dictionary)
Remarque : on peut également insérer un élément dans un dictionnaire en utilisant la méthode update(), par exemple:
dictionary = {"cat" : "chat", "dog" : "chien", "horse" : "cheval"}
dictionary.update({"duck" : "canard"})
print(dictionary)
4- Retrait d’une clé
La suppression d’une clé entraînera toujours la suppression de la valeur associée. Les valeurs ne peuvent exister sans leurs clés.
- l’instruction del. Exemple :
dictionary = {"cat" : "chat", "dog" : "chien", "horse" : "cheval"}
del dictionary['dog']
print(dictionary)
L’opérateur del peut également supprimer complètement le dictionnaire: del dictionary
Remarque : La méthode clear () vide le dictionnaire : dict.clear()
- La méthode pop () supprime l’élément avec le nom de clé spécifié:
dictionary.pop('dog')
- La méthode popitem () supprime le dernier élément inséré (dans les versions antérieures à 3.7, un élément aléatoire est supprimé à la place):
dictionary.popitem()
Dictionnaires imbriqués
Un dictionnaire peut contenir des dictionnaires, c’est ce qu’on appelle des dictionnaires imbriqués.
Exemple : Créez un dictionnaire contenant trois dictionnaires:
mafamille = { “enfant1”: {“nom”: “Ali”, année: 2004 },
“enfant2”: { “nom”: “Aya”, année: 2007 },
“enfant3”: { “nom”: “Asia”, année: 2021 }
}
Exercice :
Soient e1, e2 et e3 trois dictionnaires qui incluent les informations (numInscription, nom, prenom, option) de trois stagiaires.
On veut créer un dictionnaire ‘Classe’ qui sera rempli par les informations de ces trois stagiaires avec comme clé leurs numéros d’inscription et la valeur représente les trois informations qui restent.
Exemple :
e1={‘numInscription’:1111,’nom’:’alaoui’,’prenom’:’zineb’,’option’:’tdi’}
e2={‘numInscription’:2222,’nom’:’alami’,’prenom’:’aya’,’option’:’tdi’}
e3={‘numInscription’:3333,’nom’:’ibtihal’,’prenom’:’nidal’,’option’:’tdi’}
Le résultat attendu :
La classe : {1111: {‘nom’: ‘alaoui’, ‘prenom’: ‘zineb’, ‘option’: ‘tdi’},
2222: {‘nom’: ‘alami’, ‘prenom’: ‘aya’, ‘option’: ‘tdi’},
3333: {‘nom’: ‘ibtihal’, ‘prenom’: ‘nidal’, ‘option’: ‘tdi’}}
Solution :
e1={‘numInscription’:1111,’nom’:’alaoui’,’prenom’:’zineb’,’option’:’tdi’}
e2={‘numInscription’:2222,’nom’:’alami’,’prenom’:’aya’,’option’:’tdi’}
e3={‘numInscription’:3333,’nom’:’ibtihal’,’prenom’:’nidal’,’option’:’tdi’}
classe={}
for i in range(1,4):
e=eval(‘e’+str(i))
classe[e[‘numInscription’]]={‘nom’:e.get(‘nom’),’prenom’:e.get(‘prenom’),’option’:e.get(‘option’)}
print(“La classe :”,classe)
Vous pouvez suivre la liste des vidéos du cours Python (Programmation ) sur notre chaine youtube : Vidéos Python (cours) , Vidéos Python (exercices).
Aussi, notre cours bien structuré est sur le site : cours python
Découvrir plus de cours
Algorithmes, base de données, merise, SQL
Premiers pas en python
Dans cette partie de cours, on va découvrir les étapes à suivre pour installer un...
L’encapsulation en Python
Bienvenue dans notre cours ‘Programmation orientée objet en Python’. Ce cours traite les concepts fondamentaux...
enregistrements en algorithmique
Introduction Le type tableau nous a permis de définir une structure composée de plusieurs éléments,...