Python - 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/python
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/python
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['Alice']:
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é ci-dessous dans l'exemple simple -
#!/usr/bin/python
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/python
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. Notez qu'une exception est déclenchée car aprèsdel 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. Ce qui 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/python
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. Ce qui 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/python
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: unhashable type: 'list'
Fonctions et méthodes intégrées du dictionnaire
Python inclut les fonctions de dictionnaire suivantes -
N ° Sr. | Fonction avec description |
---|---|
1 | cmp (dict1, dict2) Compare les éléments des deux dict. |
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éthodes avec 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é) Renvoie vrai si la clé dans le dictionnaire dict , faux sinon |
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 |