On commence: بسم الله

En Python, un dictionnaire est une structure de données qui permet de stocker des paires clé-valeur. C’est comme un répertoire ou un annuaire, où chaque clé est unique et associée à une valeur spécifique.

Les dictionnaires sont très utiles pour archiver et retrouver rapidement des informations (Programmation Dynamique).

Pour pouvoir imaginer un dictionnaire, imagine une liste mais au lieu d’indices allant de 0 à n,

Syntaxe

  • Pour que Python comprenne qu’il s’agit d’une liste, on utilise les crochets []. Pour les dictionnaires, on utilise les accolades {}.
  • Dans une liste, les éléments sont automatiquement indexés à partir de 0 jusqu’à ( n-1 ), où ( n ) est le nombre d’éléments. Pour les dictionnaires, chaque élément est défini par une clé associée à une valeur (on ne peut pas écrire un dictionnaire avec juste des valeurs comme {1, 2, 5}).
NB: Structure des clés d’un dictionnaire
  • Une clé d’un dictionnaire doit être un entier, une chaîne de caractères, ou tout autre type immuable (comme un tuple).
  • Une valeur dans un dictionnaire peut être de n’importe quel type : un entier, une chaîne de caractères, une liste, un autre dictionnaire, etc.

Définition d’un dictionnaire

Pour définir un dictionnaire pour la première fois, on utilise les accolades {} en assignant à chaque case un clé et une valeur séparés par :, ou bien on utilise la fonction dict()


Ajout d’une case

Pour ajouter une case à un dictionnaire d existant, il suffit de définir le clé et la valeur de la case:

d[clé] = valeur

Exemple: Regarde le code précédent lorsqu’on a ajouté la clé 7


Modification d’une case

Pour modifier une case de clé c dans un dictionnaire d, il suffit d’appeler d[c] et l’affecter à la nouvelle valeur


Suppression d’un case

Pour supprimer une case, on utilise soit la fonction pop() ou bien l’intruction del.

NB: pop() permet de mémoriser l’élément supprimé mais certians concours interdissent l’utilisation des fonctions pré-définies


Meilleure utilisation des dictionnaires

Les dictionnaires sont principalement utilisés dans la mémorisation/archivage des données et pour éliminer les calculs redondants.

Par exemple, tu as une société et tu enregistres les données des clients. Imagine que tu as des milliers de clients et tu veux savoir une information concernant un client x. Si tu utilises les listes, tu dois itérer sur toutes les cases de la liste pour chercher les données de x, mais si on utilise les dictionnaires et j’affecte chaque client à un code ID, il suffit d’appeler d[x].

Une autre utilisation, c’est pour les fonctions récurssives :

Imagine qu’on a codé la fonction récurssive factorielle, un utilisateur va utiliser notre fonction et va calculer 91!, bien sûr le code doit calculer k! pour chaque k allant de 0 vers 90. Et si, pour une deuxième fois, il veut calculer 90!, il doit refaire tout le calcul de k! pour chaque k allant de 0 vers 89.

Mais si on mémorise à chaque fois l’output de chaque entier k calculé en construisant un dictionnaire d qui, pour chaque clé k, enregistre factorielle(k), il suffit d’appeler d[90].

La fonction factorielle est définie comme suit :

$$ n! = n \times (n-1) \times (n-2) \times \cdots \times 1 $$

Par exemple :

$$ 5! = 5 \times 4 \times 3 \times 2 \times 1 = 120 $$

Grâce aux dictionnaires, nous pouvons éviter de recalculer la factorielle pour des valeurs déjà calculées, ce qui rend notre code plus efficace.

Remarque:

Maintenant imagine que tu veux traiter les données des Milliards des gens. Imagine la différence entre les deux méthodes

Laisser un commentaire

Retour en haut