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 : 

exemple de dictionnaire
exemple de dictionnaire

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

  1. 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éeLes 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

sql l'ordre select where

SQL : l’ordre select (1/2)

Après l’introduction que nous avons fait ici, nous voulons commencer notre apprentissage du langage sql...

poo en python

Relation de Composition en python

Bienvenue dans notre cours ‘Programmation orientée objet en Python’. Alors, dans cette partie , on traite...

sql view

SQL : les vues (view sql)

Dans cette partie du cours, on va comprendre l’utilité des vues pour une base de...

Python : Les tableaux

Dans cette partie de cours, on va découvrir les l’utilisation des tableaux en python (...

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *