Python 3 - Dictionnaire

Chaque clé est séparée de sa valeur par un signe deux-points (:), les éléments sont séparés par des virgules et le tout est entouré d'accolades. Un dictionnaire vide sans aucun élément est écrit avec seulement deux accolades, comme ceci: {}.

Les clés sont uniques dans un dictionnaire alors que les valeurs peuvent ne pas l'être. Les valeurs d'un dictionnaire peuvent être de n'importe quel type, mais les clés doivent être d'un type de données immuable tel que des chaînes, des nombres ou des tuples.

Accéder aux valeurs dans le dictionnaire

Pour accéder aux éléments du dictionnaire, vous pouvez utiliser les crochets familiers avec la clé pour obtenir sa valeur. Voici un exemple simple -

#!/usr/bin/python3

dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}
print ("dict['Name']: ", dict['Name'])
print ("dict['Age']: ", dict['Age'])

Lorsque le code ci-dessus est exécuté, il produit le résultat suivant -

dict['Name']:  Zara
dict['Age']:  7

Si nous tentons d'accéder à un élément de données avec une clé, qui ne fait pas partie du dictionnaire, nous obtenons une erreur comme suit -

#!/usr/bin/python3

dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'};
print ("dict['Alice']: ", dict['Alice'])

Lorsque le code ci-dessus est exécuté, il produit le résultat suivant -

dict['Zara']:
Traceback (most recent call last):
   File "test.py", line 4, in <module>
      print "dict['Alice']: ", dict['Alice'];
KeyError: 'Alice'

Mise à jour du dictionnaire

Vous pouvez mettre à jour un dictionnaire en ajoutant une nouvelle entrée ou une paire clé-valeur, en modifiant une entrée existante ou en supprimant une entrée existante comme indiqué dans un exemple simple donné ci-dessous.

#!/usr/bin/python3

dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}
dict['Age'] = 8; # update existing entry
dict['School'] = "DPS School" # Add new entry

print ("dict['Age']: ", dict['Age'])
print ("dict['School']: ", dict['School'])

Lorsque le code ci-dessus est exécuté, il produit le résultat suivant -

dict['Age']:  8
dict['School']:  DPS School

Supprimer les éléments du dictionnaire

Vous pouvez supprimer des éléments de dictionnaire individuels ou effacer tout le contenu d'un dictionnaire. Vous pouvez également supprimer tout le dictionnaire en une seule opération.

Pour supprimer explicitement un dictionnaire entier, utilisez simplement le deldéclaration. Voici un exemple simple -

#!/usr/bin/python3

dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}

del dict['Name'] # remove entry with key 'Name'
dict.clear()     # remove all entries in dict
del dict         # delete entire dictionary

print ("dict['Age']: ", dict['Age'])
print ("dict['School']: ", dict['School'])

Cela produit le résultat suivant.

Une exception est levée car après del dict, le dictionnaire n'existe plus.

dict['Age']:
Traceback (most recent call last):
   File "test.py", line 8, in <module>
      print "dict['Age']: ", dict['Age'];
TypeError: 'type' object is unsubscriptable

Note - La méthode del () est discutée dans la section suivante.

Propriétés des clés de dictionnaire

Les valeurs du dictionnaire n'ont aucune restriction. Il peut s'agir de n'importe quel objet Python arbitraire, qu'il s'agisse d'objets standard ou d'objets définis par l'utilisateur. Cependant, il n'en va pas de même pour les clés.

Il y a deux points importants à retenir concernant les clés du dictionnaire -

(a)Plus d'une entrée par clé n'est pas autorisée. Cela signifie qu'aucune clé en double n'est autorisée. Lorsque des clés en double sont rencontrées pendant l'affectation, la dernière affectation l'emporte. Par exemple -

#!/usr/bin/python3

dict = {'Name': 'Zara', 'Age': 7, 'Name': 'Manni'}
print ("dict['Name']: ", dict['Name'])

Lorsque le code ci-dessus est exécuté, il produit le résultat suivant -

dict['Name']:  Manni

(b)Les clés doivent être immuables. Cela signifie que vous pouvez utiliser des chaînes, des nombres ou des tuples comme clés de dictionnaire, mais quelque chose comme ['key'] n'est pas autorisé. Voici un exemple simple -

#!/usr/bin/python3

dict = {['Name']: 'Zara', 'Age': 7}
print ("dict['Name']: ", dict['Name'])

Lorsque le code ci-dessus est exécuté, il produit le résultat suivant -

Traceback (most recent call last):
   File "test.py", line 3, in <module>
      dict = {['Name']: 'Zara', 'Age': 7}
TypeError: list objects are unhashable

Fonctions et méthodes intégrées du dictionnaire

Python inclut les fonctions de dictionnaire suivantes -

N ° Sr. Description de la fonction
1 cmp (dict1, dict2)

N'est plus disponible dans Python 3.

2 len (dict)

Donne la longueur totale du dictionnaire. Ce serait égal au nombre d'éléments dans le dictionnaire.

3 str (dict)

Produit une représentation sous forme de chaîne imprimable d'un dictionnaire

4 type (variable)

Renvoie le type de la variable transmise. Si la variable passée est un dictionnaire, elle renverra un type de dictionnaire.

Python inclut les méthodes de dictionnaire suivantes -

N ° Sr. Méthode et description
1 dict.clear ()

Supprime tous les éléments du dictionnaire dict

2 dict.copy ()

Renvoie une copie superficielle du dictionnaire dict

3 dict. touches ()

Créez un nouveau dictionnaire avec des clés de seq et des valeurs définies sur value .

4 dict.get (clé, par défaut = Aucun)

Pour la clé clé, renvoie la valeur ou la valeur par défaut si la clé n'est pas dans le dictionnaire

5 dict.has_key (clé)

Supprimé, utilisez plutôt l'opération en cours.

6 dict.items ()

Renvoie une liste de paires de tuples de dict (clé, valeur)

sept dict.keys ()

Renvoie la liste des clés du dictionnaire dict

8 dict.setdefault (clé, par défaut = Aucun)

Similaire à get (), mais définira dict [key] = default si la clé n'est pas déjà dans dict

9 dict.update (dict2)

Ajoute les paires valeur / clé de dictionnaire dict2 à dict

dix dict.values ​​()

Renvoie la liste des valeurs du dictionnaire dict