Article original : Python Dictionary – How to Perform CRUD Operations on dicts in Python

L'un des types de données composites les plus importants en Python est le dictionnaire. Il s'agit d'une collection que vous utilisez pour stocker des données sous forme de paires {clé:valeur}.

Les dictionnaires sont ordonnés et mutables, et ils ne peuvent pas stocker de données en double. Gardez simplement à l'esprit qu'avant Python 3.6, les dictionnaires étaient non ordonnés.

Très bien, plongeons-nous et apprenons-en plus sur leur fonctionnement.

Comment créer un dictionnaire en Python

Comme nous le savons, un dictionnaire est composé d'une collection de paires {clé:valeur}. Un deux-points (:) sépare chaque clé de sa valeur associée.

Nous pouvons définir un dictionnaire en enfermant une liste séparée par des virgules de paires clé-valeur dans des accolades ({}).

mon_dict = {
    "Nom": "Ashutosh Krishna",
    "Rôle": 23,
    "Matières": ["OS", "CN", "DBMS"]
}

Dans l'exemple ci-dessus, Nom, Rôle et Matières sont les clés du dictionnaire mon_dict. Ashutosh Krishna, 23 et ["OS", "CN", "DBMS"] sont leurs valeurs respectives.

Nous pouvons également déclarer un dictionnaire en utilisant la fonction intégrée dict() comme ceci :

mon_dict = dict({
    "Nom": "Ashutosh Krishna",
    "Rôle": 23,
    "Matières": ["OS", "CN", "DBMS"]
})

Une liste de tuples fonctionne bien pour cela :

mon_dict = dict([
    ("Nom", "Ashutosh Krishna"), 
    ("Rôle", 23),
    ("Matières", ["OS", "CN", "DBMS"])
])

Ils peuvent également être spécifiés comme arguments de mots-clés.

mon_dict = dict(
    Nom="Ashutosh Krishna", 
    Rôle=23, 
    Matières=["OS", "CN", "DBMS"]
)

Comment accéder aux valeurs d'un dictionnaire en Python

Vous ne pouvez pas accéder aux valeurs d'un dictionnaire en utilisant l'index.

mon_dict = {
    "Nom": "Ashutosh Krishna",
    "Rôle": 23,
    "Matières": ["OS", "CN", "DBMS"]
}

print(mon_dict[1])

Si vous essayez de faire cela, cela générera une erreur KeyError comme ceci :

Traceback (most recent call last):
  File "C:\Users\ashut\Desktop\Test\hello\test.py", line 7, in <module>
    print(mon_dict[1])
KeyError: 1

Remarquez que l'exception s'appelle KeyError. Cela signifie-t-il que les valeurs du dictionnaire peuvent être accessibles en utilisant les clés ? Oui, vous avez raison !

Vous pouvez obtenir une valeur d'un dictionnaire en spécifiant sa clé correspondante entre crochets ([]).

>>> mon_dict['Nom']          
'Ashutosh Krishna'
>>> mon_dict['Matières'] 
['OS', 'CN', 'DBMS']

Si une clé n'existe pas dans le dictionnaire, nous obtenons une exception KeyError comme nous l'avons vu ci-dessus.

>>> mon_dict['Collège']  
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
KeyError: 'Collège'

Mais nous pouvons également éviter cette erreur en utilisant la fonction get().

>>> mon_dict.get('Collège')
>>>

Si la clé existe dans le dictionnaire, elle récupérera la valeur correspondante. Mais si elle n'existe pas, elle ne générera pas d'erreur.

Comment mettre à jour un dictionnaire en Python

Les dictionnaires sont mutables, ce qui signifie qu'ils peuvent être modifiés. Nous pouvons ajouter une nouvelle paire {clé:valeur} ou modifier celles existantes.

Ajouter un nouvel élément dans le dictionnaire est assez facile en utilisant l'opérateur d'affectation, comme ceci :

>>> mon_dict['Collège'] = 'NSEC'
>>> mon_dict                    
{'Nom': 'Ashutosh Krishna', 'Rôle': 23, 'Matières': ['OS', 'CN', 'DBMS'], 'Collège': 'NSEC'}

Si la clé est déjà présente dans le dictionnaire, elle mettra à jour la valeur de cette clé.

>>> mon_dict['Rôle'] = 35
>>> mon_dict
{'Nom': 'Ashutosh Krishna', 'Rôle': 35, 'Matières': ['OS', 'CN', 'DBMS'], 'Collège': 'NSEC'}

Comment mettre à jour un dictionnaire en utilisant la méthode update()

Nous pouvons également mettre à jour le dictionnaire en utilisant la méthode intégrée update() comme ceci :

>>> mon_dict
{'Nom': 'Ashutosh Krishna', 'Rôle': 35, 'Matières': ['OS', 'CN', 'DBMS'], 'Collège': 'NSEC'}
>>> autre_dict = {'Branche': 'IT'}
>>> mon_dict.update(autre_dict)
>>> mon_dict
{'Nom': 'Ashutosh Krishna', 'Rôle': 35, 'Matières': ['OS', 'CN', 'DBMS'], 'Collège': 'NSEC', 'Branche': 'IT'}
>>>

La méthode update() prend soit un dictionnaire, soit un objet itérable de paires clé/valeur (généralement des tuples).

>>> mon_dict.update(Branche='CSE') 
>>> mon_dict
{'Nom': 'Ashutosh Krishna', 'Rôle': 35, 'Matières': ['OS', 'CN', 'DBMS'], 'Collège': 'NSEC', 'Branche': 'CSE'}

Comment supprimer des éléments d'un dictionnaire en Python

Il existe plusieurs façons de supprimer des éléments d'un dictionnaire Python.

Comment supprimer des éléments d'un dictionnaire avec la méthode pop()

Nous pouvons supprimer un élément particulier dans un dictionnaire en utilisant la méthode pop(). Cette méthode supprime un élément avec la clé fournie et retourne la valeur.

>>> rôle = mon_dict.pop('Rôle') 
>>> rôle
35
>>> mon_dict
{'Nom': 'Ashutosh Krishna', 'Matières': ['OS', 'CN', 'DBMS'], 'Collège': 'NSEC', 'Branche': 'CSE'}

Comment supprimer un élément d'un dictionnaire avec la méthode popitem()

La méthode popitem() supprime la dernière paire clé-valeur et la retourne sous forme de tuple :

>>> mon_dict.popitem()
('Branche', 'CSE')
>>> mon_dict
{'Nom': 'Ashutosh Krishna', 'Matières': ['OS', 'CN', 'DBMS'], 'Collège': 'NSEC'}

Comment supprimer un élément d'un dictionnaire avec le mot-clé del

Vous pouvez utiliser le mot-clé del pour supprimer une paire {clé:valeur} particulière ou même le dictionnaire entier.

>>> del mon_dict['Matières'] 
>>> mon_dict
{'Nom': 'Ashutosh Krishna', 'Collège': 'NSEC'}
>>> del mon_dict
>>> mon_dict
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'mon_dict' is not defined

Comment supprimer un élément d'un dictionnaire avec la méthode clear()

La méthode clear efface toutes les paires {clé:valeur} du dictionnaire.

>>> mon_dict
{'Nom': 'Ashutosh Krishna', 'Rôle': 23, 'Matières': ['OS', 'CN', 'DBMS']}
>>> mon_dict.clear()
>>> mon_dict
{}

Remarquez qu'après l'appel de la méthode clear(), l'impression du dictionnaire ne génère pas d'erreur car la méthode clear() ne supprime pas le dictionnaire. Mais le mot-clé del supprime également le dictionnaire. C'est pourquoi nous obtenons une erreur NameError dans ce cas.

Opérateurs et fonctions intégrées des dictionnaires

Parlons de deux opérateurs et fonctions intégrées importants que nous pouvons utiliser avec les dictionnaires.

Fonction len()

La fonction len() retourne le nombre de paires clé-valeur dans un dictionnaire :

>>> mon_dict
{'Nom': 'Ashutosh Krishna', 'Rôle': 23, 'Matières': ['OS', 'CN', 'DBMS']}
>>> len(mon_dict)
3

Fonction sorted()

La fonction sorted() trie les éléments d'un itérable donné dans un ordre spécifique (ascendant ou descendant) et le retourne sous forme de liste.

>>> sorted(mon_dict)
['Nom', 'Rôle', 'Matières']

Opérateur in

Vous pouvez utiliser l'opérateur in pour vérifier si une clé est présente dans le dictionnaire ou non.

>>> 'Rôle' in mon_dict
True
>>> 'Collège' in mon_dict
False

Méthodes intégrées des dictionnaires

Il existe diverses méthodes intégrées disponibles dans un dictionnaire Python. Nous en avons discuté quelques-unes précédemment telles que clear(), pop() et popitem(). Voyons quelques autres méthodes également.

MéthodeDescription
clear()Supprime tous les éléments du dictionnaire.
copy()Retourne une copie superficielle du dictionnaire.
fromkeys(seq[, v])Retourne un nouveau dictionnaire avec des clés de seq et une valeur égale à v (par défaut None).
get(key[,d])Retourne la valeur de la key. Si la key n'existe pas, retourne d (par défaut None).
items()Retourne un nouvel objet des éléments du dictionnaire au format (clé, valeur).
keys()Retourne un nouvel objet des clés du dictionnaire.
pop(key[,d])Supprime l'élément avec la key et retourne sa valeur ou d si key n'est pas trouvé. Si d n'est pas fourni et que la key n'est pas trouvée, elle lève une erreur KeyError.
popitem()Supprime et retourne un élément arbitraire (clé, valeur). Lève une erreur KeyError si le dictionnaire est vide.
setdefault(key[,d])Retourne la valeur correspondante si la key est dans le dictionnaire. Si ce n'est pas le cas, insère la key avec une valeur de d et retourne d (par défaut None).
update([other])Met à jour le dictionnaire avec les paires clé/valeur de other, écrasant les clés existantes.
values()Retourne un nouvel objet des valeurs du dictionnaire

Comment parcourir un dictionnaire

Par défaut, lorsque nous utilisons une boucle for pour parcourir un dictionnaire, nous obtenons les clés :

mon_dict = {
    "Nom": "Ashutosh Krishna",
    "Rôle": 23,
    "Matières": ["OS", "CN", "DBMS"]
}

for item in mon_dict:
    print(item)

Sortie :

Nom
Rôle
Matières

Nous pouvons également parcourir un dictionnaire de les manières suivantes :

Comment parcourir un dictionnaire en utilisant la méthode items()

Lorsque nous utilisons la méthode items() pour parcourir un dictionnaire, elle retourne un tuple de clé et de valeur à chaque itération. Ainsi, nous pouvons obtenir directement la clé et la valeur dans ce cas :

mon_dict = {
    "Nom": "Ashutosh Krishna",
    "Rôle": 23,
    "Matières": ["OS", "CN", "DBMS"]
}

for key, value in mon_dict.items():
    print(key, value)

Sortie :

Nom Ashutosh Krishna
Rôle 23
Matières ['OS', 'CN', 'DBMS']

Comment parcourir un dictionnaire en utilisant keys()

Dans ce cas, nous obtenons la clé à chaque itération.

mon_dict = {
    "Nom": "Ashutosh Krishna",
    "Rôle": 23,
    "Matières": ["OS", "CN", "DBMS"]
}

for key in mon_dict.keys():
    print(key)

Sortie :

Nom
Rôle
Matières

Comment parcourir un dictionnaire en utilisant values()

Dans ce cas, nous obtenons les valeurs du dictionnaire directement.

mon_dict = {
    "Nom": "Ashutosh Krishna",
    "Rôle": 23,
    "Matières": ["OS", "CN", "DBMS"]
}

for value in mon_dict.values():
    print(value)

Sortie :

Ashutosh Krishna
23
['OS', 'CN', 'DBMS']

Comment fusionner des dictionnaires en Python

Nous devons souvent fusionner des dictionnaires en Python. J'ai écrit un article séparé sur ce sujet, que vous pouvez lire ici.

Conclusion

Dans cet article, nous avons appris ce que sont les dictionnaires Python et comment effectuer des opérations CRUD sur eux. Nous avons également vu plusieurs méthodes et fonctions associées.

J'espère que vous avez apprécié – et merci pour la lecture !

S'abonner à ma newsletter