Les dictionnaires en Python

Dictionnaire Python

Un dictionnaire est un objet conteneur qui stocke une collection de paires clé / valeur. Il permet une récupération rapide, suppression et mise à jour de la valeur à l’aide de sa clé.

Supposons que votre programme a besoin de stocker toutes les informations (CIN, nom, prénom, …..) des élèves de votre classe. En addition, le programme doit accéder aux informations d’un élève en utilisant seulement son numéro de CIN seulement. Quelle est la structure de donnée convenable pour satisfaire ces besoins ?

Un dictionnaire est une structure de données efficace pour une telle tâche. Un dictionnaire est une collection qui stocke des paires clé/valeurs, ce qui simplifie la recherche. Les clés jouent le rôle des indices dans les listes. En effet, chaque clé va contenir le numéro de la CIN d’un étudiant ainsi sa valeur correspondante va contenir ses informations (nom, prénom,…).

Ainsi, pour accéder aux informations – enregistrées dans le dictionnaire Dic – de l’étudiant dont le numéro de CIN est « AWB987654 », il suffit seulement d’utiliser l’expression Dic[‘AWB987654 ’].

Dans une liste, les indices sont des nombres entiers. Dans un dictionnaire, la clé doit être un objet hashable (exemple : entier, flottant, logique, complexe, chaîne de caractères, tuple). La partie « valeur » peut être de tout type.

Un dictionnaire ne peut pas contenir des clés dupliquées. Chaque clé a une valeur. Toute clé plus sa valeur correspondante forment un élément (ou entrée) stocké dans un dictionnaire.

La structure de données est appelée un «dictionnaire» parce qu’il ressemble à un dictionnaire de mots, où les mots sont les clés et les définitions des mots sont les valeurs.

La création d’un dictionnaire

Vous pouvez créer un dictionnaire en enfermant les éléments à l’intérieur d’une paire d’accolades { }. Chaque élément est constitué d’une clé, suivi par deux points, suivie d’une valeur. Les éléments sont séparés par des virgules. Par exemple, la déclaration suivante:

students = {"111-34-3434":"John", "132-56-6290":"Peter"}

crée un dictionnaire avec deux éléments.

Chaque élément est représenté sous la forme clé: valeur. La clé du premier élément est 111-34-3434, et sa valeur correspondante est John.

La clé doit être d’un type hashable telles que les nombres et les chaînes. La valeur peut être de tout type.

Vous pouvez créer un dictionnaire vide en utilisant la syntaxe suivante:

students = {}

Note : Python utilise des accolades pour les ensembles et les dictionnaires. La syntaxe { } désigne un dictionnaire vide. Pour créer un ensemble vide, utilisez set ().

Ajout, modification et récupération de valeurs

Pour ajouter un élément à un dictionnaire, utilisez la syntaxe:
NomDictionnaire[clé]= valeur

Par exemple:

students["234-56-9010"] = "Susan"

Si la clé est déjà dans le dictionnaire, la déclaration précédente va remplacer la valeur de la clé.

Pour récupérer une valeur, il suffit d’écrire l’expression NomDictionnaire[clé]. Si la clé est dans le dictionnaire, la valeur de la clé est renvoyée. Dans le cas contraire, une exception KeyError est soulevée.

Par exemple:

>>> students = {"111-34-3434":"John", "132-56-6290":"Peter"}
>>> students["234-56-9010"] = "Susan" # Ajout
>>> students["234-56-9010"]
"Susan"
>>> students["111-34-3434"] = "John Smith"# Modification
>>> students["111-34-3434"]
"John Smith"
>>> student["343-45-5455"]
Traceback (most recent call last):
File "", line 1, in 
KeyError: '343-45-5455'
>>>

Suppression d’éléments

Pour supprimer un élément d’un dictionnaire, utilisez la syntaxe:

del NomDictionnaire[clé]

Par exemple:

del students["234-56-9010"]

Cette déclaration supprime un élément avec la clé 234-56-9010 du dictionnaire. Si la clé n’est pas dans le dictionnaire, une exception KeyError est soulevée.

Parcourir un dictionnaire

Vous pouvez utiliser une boucle for pour parcourir toutes les clés du dictionnaire.

Par exemple:

>>> students = {"111-34-3434":"John", "132-56-6290":"Peter"}
>>> for key in students:
print(key + ":" + str(students[key]))

"111-34-3434":"John"
"132-56-6290":"Peter"
>>>

La boucle for itère sur les clés dans le dictionnaire students (ligne 2). students[key] retourne la valeur de la clé (ligne 3).

La fonction len()

Vous pouvez trouver le nombre d’éléments dans un dictionnaire en utilisant
len(NomDictionnaire). Par exemple:

>>> students = {"111-34-3434":"John", "132-56-6290":"Peter"}
>>> len(students)
2
>>>

Tester si une clé est dans un dictionnaire

Vous pouvez utiliser les opérateurs in et not in pour déterminer si une clé est dans le dictionnaire.Par exemple:

>>> students = {"111-34-3434":"John", "132-56-6290":"Peter"}
>>> "111-34-3434" in students
True
>>> "999-34-3434" in students
False
>>>

Test d’égalité

Vous pouvez utiliser les opérateurs == et ! = pour tester si deux dictionnaires contiennent les mêmes éléments. Par exemple:

>>> d1 = {"red":41, "blue":3}
>>> d2 = {"blue":3, "red":41}
>>> d1 == d2
True
>>> d1 != d2
False
>>>

Vous ne pouvez pas utiliser les opérateurs de comparaison (>,> =, <= et <) pour comparer les dictionnaires parce que les éléments ne sont pas ordonnés.

Les méthodes des dictionnaires

La classe Python pour les dictionnaires est dict. La liste suivante énumère les méthodes qui peuvent être appelées à partir d’un objet dictionnaire.

  • keys(): Retourne une séquence de clés.
  • values(): Retourne une séquence de valeurs.
  • items(): Retourne une séquence de tuples. Chaque tuple est sous la forme (clé, valeur).
  • clear(): Supprime tous les éléments.
  • get(clé): Renvoie la valeur de la clé.
  • pop(clé): Supprime l’élément de la clé et retourne sa valeur.
  • popitem(): tuple Renvoie une paire clé/valeur sélectionnée au hasard sous forme d’un tuple et supprime l’élément sélectionné.

La méthode get(clé) est similaire à NomDictionnaire[clé], sauf que la méthode get() retourne None si la clé est pas dans le dictionnaire plutôt que soulever une exception.

La méthode pop (clé) est l’équivalent de del NomDictionnaire [clé].

Voici quelques exemples qui montrent l’usage de ces méthodes:

>>> students = {"111-34-3434":"John", "132-56-6290":"Peter"}
>>> tuple(students.keys())
("111-34-3434", "132-56-6290")
>>> tuple(students.values())
("John", "Peter")
>>> tuple(students.items())
(("111-34-3434", "John"), ("132-56-6290", "Peter"))
>>> students.get("111-34-3434")
"John"
>>> print(students.get("999-34-3434"))
None
>>> students.pop("111-34-3434")
"John"
>>> students
{"132-56-6290":"Peter"}
>>> students.clear()
>>> students
{}

 

LAISSER UN COMMENTAIRE

Please enter your comment!
Please enter your name here