10 méthodes de dictionnaire Python utiles

Vous cherchez à apprendre à travailler avec des dictionnaires Python ? Ce didacticiel couvrira les méthodes de dictionnaire Python pour lire, modifier et effectuer d’autres opérations courantes sur les dictionnaires Python.

Nous allons commencer par passer en revue les bases des dictionnaires Python, puis créer un exemple de dictionnaire et le modifier à l’aide des méthodes de dictionnaire Python.

Commençons…

Un aperçu des dictionnaires Python

Les dictionnaires sont des structures de données intégrées à Python. Il vous permet de stocker des éléments dans des paires clé-valeur, en définissant une association ou un mappage entre les clés et les valeurs.

Les clés d’un dictionnaire doivent être uniques (pour qu’elles puissent être hachées). Vous pouvez utiliser la clé pour rechercher la valeur ou utiliser des méthodes intégrées (vous les apprendrez bientôt).

Lors de la création d’un dictionnaire Python, vous pouvez initialiser toutes les paires clé-valeur ou initialiser un dictionnaire vide, puis ajouter les paires clé-valeur.

>>> dict1 = {'language':'Python','like':True}
>>> type(dict1)
<class 'dict'>

# or we can do the following:

>>> dict1 = {}
>>> dict1['language']='Python'
>>> dict1['like']=True

Méthodes du dictionnaire Python pour les opérations courantes

Remarque : pour suivre les exemples de code, vous devez avoir installé Python 3.7 ou une version ultérieure.

Vous pouvez coder dans un REPL Python. Ou suivez l’éditeur Python en ligne de toptips.fr.

>>> person = {'name':'Alice',
...           'city':'Portland',
...           'interest':'Programming',
...           'profession':'Developer'
...           }

Maintenant que nous avons initialisé un dictionnaire Python, passons en revue les différentes méthodes de dictionnaire.

Obtenez les clés du dictionnaire avec keys()

L’une des opérations courantes lorsque vous travaillez avec un dictionnaire Python consiste à accéder à toutes les clés, valeurs et paires clé-valeur. Pour obtenir les clés d’un dictionnaire, vous pouvez appeler la méthode keys() comme indiqué :

>>> person.keys()
dict_keys(['name', 'city', 'interest', 'profession'])

Obtenez les valeurs du dictionnaire avec des valeurs ()

La méthode values() renvoie toutes les valeurs et est utile lorsque vous souhaitez traiter davantage ces valeurs.

Accédons à toutes les valeurs du dictionnaire de personnes :

>>> person.values()
dict_values(['Alice', 'Portland', 'Programming', 'Developer'])

Obtenir des paires clé-valeur avec items()

La méthode items() renvoie une liste de tuples de valeurs-clés. Par conséquent, l’appel de cette méthode sur le dictionnaire de personnes renvoie une liste de tuples clé-valeur :

>>> person.items()
dict_items([('name', 'Alice'), ('city', 'Portland'), ('interest', 'Programming'), 
           ('profession', 'Developer')])

Obtenir une copie superficielle avec copy()

La méthode copy() renvoie une copie superficielle d’un dictionnaire Python.

>>> person_cpy = person.copy()

Ici, person_cpy est une copie superficielle du dictionnaire de personnes. Modifions cette copie en mettant à jour la clé ‘name’ en ‘Bob’.

>>> person_cpy['name'] = 'Bob'
>>> person_cpy

Maintenant, si vous examinez le contenu du dictionnaire, vous pouvez voir que le ‘nom’ a été mis à jour en ‘Bob’.

{
 'name': 'Bob', 
 'city': 'Portland', 
 'interest': 'Programming', 
 'profession': 'Developer'
}

Cependant, le dictionnaire de personnes d’origine n’a pas été modifié.

>>> person
{
 'name': 'Alice', 
 'city': 'Portland', 
 'interest': 'Programming', 
 'profession': 'Developer'
}

Définir les valeurs par défaut avec setdefault()

Lorsque vous travaillez avec des dictionnaires Python, il est courant de rencontrer l’exception KeyError si la clé n’est pas présente dans le dictionnaire. Voici un exemple lorsque nous essayons d’accéder à la clé ‘age’ :

>>> person['age']
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
KeyError: 'age'

Vous pouvez éviter de telles erreurs en utilisant les méthodes intégrées setdefault() et get() au lieu d’accéder à la valeur comme ci-dessus.

La méthode setdefault(key) renvoie dict[‘key’] si la clé est présente dans le dict.

>>> person.setdefault('name')
'Alice'

Lorsque la clé n’est pas présente, il ajoute la clé au dictionnaire avec la valeur par défaut de None.

>>> person.setdefault('address')
>>> person

Ici, la clé ‘adresse’ n’est pas présente dans le dictionnaire de personnes. Mais nous voyons qu’il a été ajouté avec la valeur par défaut de None.

{
 'name': 'Alice', 
 'city': 'Portland', 
 'interest': 'Programming', 
 'profession': 'Developer', 
 'address': None 
}

Nous pouvons maintenant définir la clé ‘address’ sur une adresse :

>>> person['address'] = "10, xyz street"
>>> person
{
 'name': 'Alice', 
 'city': 'Portland', 
 'interest': 'Programming', 
 'profession': 'Developer', 
 'address': '10, xyz street' 
}

Vous pouvez également spécifier la valeur dans l’appel de méthode, comme indiqué :

>>> person.setdefault('country','USA')
'USA'
>>> person

Comme la clé ‘country’ n’est pas présente à l’origine dans le dictionnaire de personnes, nous voyons qu’elle a été ajoutée avec ‘USA’ comme valeur.

{
 'name': 'Alice', 
 'city': 'Portland', 
 'interest': 'Programming', 
 'profession': 'Developer', 
 'address': '10, xyz street', 
 'country': 'USA'
}

Obtenir une valeur spécifique avec get ()

La méthode get() renvoie la valeur correspondant à la clé. Il prend également éventuellement une autre valeur par défaut qui est renvoyée si la clé n’est pas trouvée dans le dictionnaire.

Lorsque nous essayons d’accéder à la valeur de la clé ‘name’, nous obtenons ‘Alice’ car la clé est présente en personne :

>>> person.get('name')
'Alice'

Le dictionnaire de personnes n’a pas de clé ‘gpa’. Ainsi, lorsque nous essayons d’obtenir sa valeur, nous n’obtenons rien au REPL Python. Cependant, si vous imprimez la valeur, vous obtiendrez None.

>>> person.get('gpa')
>>> print(person.get('gpa'))
None

Mais si vous fournissez la valeur par défaut facultative, nous obtenons cette valeur au lieu de None.

>>> person.get('gpa','not found')
'not found'

Cependant, la méthode get() n’ajoute pas la clé ‘gpa’ au dictionnaire.

>>> person
{
 'name': 'Alice', 
 'city': 'Portland', 
 'interest': 'Programming', 
 'profession': 'Developer', 
 'address': '10, xyz street', 
 'country': 'USA'
}

Comprendre setdefault() vs get()

Bien que les méthodes setdefault() et get() puissent être utilisées pour gérer KeyError, résumons les différences par rapport à ce que nous avons appris :

  • dict.setdefault(key,val) ajoute la clé avec val comme valeur par défaut. Si val n’est pas fourni, la clé est ajoutée avec la valeur par défaut None.
  • dict.get(key,val) renvoie la valeur correspondant à la clé du dictionnaire Python. Si la clé n’est pas présente, il renvoie val (si fourni) ou None, mais n’ajoute pas la clé au dictionnaire.

Vous pouvez également utiliser defaultdict en Python pour mieux gérer les KeyErrors.

Mettre à jour le contenu du dictionnaire avec update()

Vous pouvez mettre à jour un dictionnaire Python existant à l’aide de paires clé-valeur d’un autre dictionnaire. Vous pouvez également mettre à jour avec le contenu de n’importe quel itérable Python en utilisant la méthode update().

Définissons un dictionnaire more_details. Nous mettons ensuite à jour le dictionnaire de personnes avec le contenu du dictionnaire more_details :

>>> more_details = {'hobby':'singing', 'likes':'sweets'}
>>> person.update(more_details)

Dans la sortie ci-dessous, nous voyons que les clés « hobby » et « likes » ont été ajoutées au dictionnaire de personnes.

>>> person
{
 'name': 'Alice', 
 'city': 'Portland', 
 'interest': 'Programming', 
 'profession': 'Developer', 
 'address': '10, xyz street', 
 'country': 'USA', 
 'hobby': 'singing', 
 'likes': 'sweets'
}

Supprimer le dernier élément ajouté avec popitem()

La méthode du dictionnaire popitem() peut être utilisée pour supprimer la dernière paire clé-valeur ajoutée.

>>> person.popitem()
('likes', 'sweets')

Comme on l’a vu, l’appel de la méthode popitem() sur le dictionnaire de personnes renvoie la paire clé-valeur (‘likes’,’sweets’) — le dernier élément ajouté dans le dictionnaire.

Il supprime également la paire clé-valeur. Vous pouvez le confirmer en examinant le contenu du dictionnaire :

>>> person
{
 'name': 'Alice', 
 'city': 'Portland', 
 'interest': 'Programming', 
 'profession': 'Developer', 
 'address': '10, xyz street', 
 'country': 'USA', 
 'hobby': 'singing'
}

Supprimer un élément de dictionnaire avec pop()

Nous savons que la méthode du dictionnaire popitem() supprime et renvoie la dernière paire clé-valeur dans un dictionnaire Python. Cependant, nous pouvons parfois avoir besoin de supprimer d’autres éléments, autres que la dernière paire clé-valeur ajoutée.

Pour ce faire, nous pouvons utiliser la méthode du dictionnaire Python pop() : l’utilisation de .pop(key) sur le dictionnaire renvoie la valeur correspondant à la clé et supprime également la paire clé-valeur du dictionnaire.

Voici un exemple :

>>> person.pop('hobby')
'singing'

Au fur et à mesure que nous avons dépilé l’item correspondant à la clé ‘hobby’, nous voyons qu’il n’est plus présent dans le dictionnaire.

>>> person
{
 'name': 'Alice', 
 'city': 'Portland', 
 'interest': 'Programming', 
 'profession': 'Developer', 
 'address': '10, xyz street', 
 'country': 'USA'
}

Si nous transmettons une clé qui n’existe pas, nous rencontrons l’exception KeyError, comme indiqué :

>>> person.pop('age')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
KeyError: 'age'

Ici, nous rencontrons une exception KeyError car la clé ‘age’ n’est pas présente dans le dictionnaire de personnes.

Contrairement à la méthode list pop() qui supprime le dernier élément par défaut, la méthode dictionary pop() nécessite une clé. Si vous ne spécifiez pas de clé dans la méthode, nous rencontrerons des erreurs.

>>> person.pop()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: pop expected at least 1 argument, got 0

Supprimer tous les éléments du dictionnaire avec clear()

Les méthodes pop() et popitem() du dictionnaire suppriment une paire clé-valeur à la fois. Si vous souhaitez supprimer tous les éléments d’un dictionnaire, vous pouvez utiliser la méthode clear().

>>> person.clear()
>>> person
{}

Comme on le voit, l’appel de la méthode clear() sur le dictionnaire de personnes supprime toutes les paires clé-valeur et le dictionnaire de personnes est maintenant vide.

Résumé des méthodes de dictionnaire Python

Voici un bref aperçu des méthodes de dictionnaire Python que nous avons apprises.

MethodSyntaxDescriptionkeys()dict1.keys()Renvoie les clés de dict1values()dict1.values()Renvoie les valeurs de dict1items()dict1.items()Renvoie une liste de toutes les paires clé-valeur dans dict1copy()dict1.copy() Renvoie une copie superficielle de dict1setdefault()dict1.setdefault(key, default_value)– Ajoute une clé avec la default_value facultative comme clé à dict1 (lorsqu’elle n’est pas spécifiée, la valeur par défaut est None)
– Renvoie dict1[key] si la clé est déjà présenteget()dict1.get(key,default_value)– Renvoie dict1[key] si la clé est présente dans dict1 ; Sinon, renvoie la default_value
– Si la clé n’est pas présente dans dict1 et que la valeur par défaut n’est pas spécifiée, renvoie Noneupdate()dict1.update(iterable1)Met à jour dict1 avec les paires clé-valeur de iterable1popitem()dict1.popitem() Supprime et renvoie la dernière paire clé-valeur de dict1pop()dict1.pop(key)– Supprime et retourne la valeur correspondant à la clé : dict1[key]
– Génère une KeyError si la clé n’est pas présente dans dict1clear()dict1.clear() Supprime tous les éléments de dict1

Conclusion

Vous avez appris à utiliser des méthodes courantes pour effectuer des opérations de lecture, de mise à jour et de suppression sur des dictionnaires Python. De plus, vous avez également appris comment les méthodes get() et setdefault() peuvent être utilisées pour gérer les exceptions KeyError en retournant une valeur par défaut et en ajoutant une entrée avec une valeur par défaut au dictionnaire Python, respectivement. Vous pouvez également trier un dictionnaire Python par clé ou par valeur.

Ensuite, consultez la liste des méthodes de liste Python utiles. Bon codage !