Dictionnaires Python
En Python, un dictionnaire est une collection ordonnée (à partir de Python > 3.7) de paires clé: valeur.
De la documentation Python 3
Les principales opérations sur un dictionnaire sont de stocker une valeur avec une certaine clé et d'extraire la valeur étant donnée la clé. Il est également possible de supprimer une paire clé:valeur avec del.
Exemple de dictionnaire :
# Dictionnaire : collection de paires clé-valeur
my_cat = {
'size': 'fat', # clé: 'size', valeur: 'fat'
'color': 'gray', # clé: 'color', valeur: 'gray'
'disposition': 'loud' # clé: 'disposition', valeur: 'loud'
}
Définir une clé, une valeur en utilisant l’opérateur de sous-indice []
# Ajouter ou mettre à jour une entrée de dictionnaire en utilisant l'opérateur de sous-indice
my_cat = {
'size': 'fat',
'color': 'gray',
'disposition': 'loud',
}
my_cat['age_years'] = 2 # Ajouter une nouvelle paire clé-valeur
print(my_cat)
{'size': 'fat', 'color': 'gray', 'disposition': 'loud', 'age_years': 2}
Obtenir la valeur en utilisant l’opérateur de sous-indice []
Si la clé n’est pas présente dans le dictionnaire, une KeyError est levée.
my_cat = {
'size': 'fat',
'color': 'gray',
'disposition': 'loud',
}
print(my_cat['size'])
fat
print(my_cat['eye_color'])
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
KeyError: 'eye_color'
values()
La méthode values() récupère les valeurs du dictionnaire :
# Itérer sur les valeurs du dictionnaire en utilisant la méthode .values()
pet = {'color': 'red', 'age': 42}
for value in pet.values(): # Boucler sur toutes les valeurs
print(value)
red
42
keys()
La méthode keys() récupère les clés du dictionnaire :
# Itérer sur les clés du dictionnaire en utilisant la méthode .keys()
pet = {'color': 'red', 'age': 42}
for key in pet.keys(): # Boucler sur toutes les clés
print(key)
color
age
Il n’est pas nécessaire d’utiliser .keys() car par défaut, vous parcourrez les clés :
# Itérer directement sur le dictionnaire parcourt les clés (comportement par défaut)
pet = {'color': 'red', 'age': 42}
for key in pet: # Équivalent à for key in pet.keys()
print(key)
color
age
items()
La méthode items() récupère les éléments d’un dictionnaire et les retourne sous forme de Tuple :
pet = {'color': 'red', 'age': 42}
for item in pet.items():
print(item)
('color', 'red')
('age', 42)
En utilisant les méthodes keys(), values() et items(), une boucle for peut itérer respectivement sur les clés, les valeurs ou les paires clé-valeur d’un dictionnaire.
# Itérer sur les paires clé-valeur en utilisant la méthode .items()
pet = {'color': 'red', 'age': 42}
for key, value in pet.items(): # Dépaqueter le tuple en clé et valeur
print(f'Key: {key} Value: {value}')
Key: color Value: red
Key: age Value: 42
get()
La méthode get() retourne la valeur d’un élément avec la clé donnée. Si la clé n’existe pas, elle retourne None :
# Méthode .get() : récupérer la valeur en toute sécurité, retourne None si la clé n'existe pas
wife = {'name': 'Rose', 'age': 33}
f'My wife name is {wife.get("name")}' # Retourne 'Rose'
'My wife name is Rose'
f'She is {wife.get("age")} years old.'
'She is 33 years old.'
f'She is deeply in love with {wife.get("husband")}'
'She is deeply in love with None'
Vous pouvez également changer la valeur par défaut None par celle de votre choix :
wife = {'name': 'Rose', 'age': 33}
f'She is deeply in love with {wife.get("husband", "lover")}'
'She is deeply in love with lover'
Ajout d’éléments avec setdefault()
Il est possible d’ajouter un élément à un dictionnaire de cette manière :
wife = {'name': 'Rose', 'age': 33}
if 'has_hair' not in wife:
wife['has_hair'] = True
En utilisant la méthode setdefault, nous pouvons rendre le même code plus court :
wife = {'name': 'Rose', 'age': 33}
wife.setdefault('has_hair', True)
wife
{'name': 'Rose', 'age': 33, 'has_hair': True}
Suppression d’éléments
pop()
La méthode pop() supprime et retourne un élément basé sur une clé donnée.
wife = {'name': 'Rose', 'age': 33, 'hair': 'brown'}
wife.pop('age')
33
wife
{'name': 'Rose', 'hair': 'brown'}
Connectez-vous pour répondre à ce quiz et suivre votre progression d'apprentissage
pop() lorsqu'il est appelé sur un dictionnaire ?popitem()
La méthode popitem() supprime le dernier élément d’un dictionnaire et le retourne.
wife = {'name': 'Rose', 'age': 33, 'hair': 'brown'}
wife.popitem()
('hair', 'brown')
wife
{'name': 'Rose', 'age': 33}
del
La méthode del supprime un élément basé sur une clé donnée.
wife = {'name': 'Rose', 'age': 33, 'hair': 'brown'}
del wife['age']
wife
{'name': 'Rose', 'hair': 'brown'}
clear()
La méthode clear() supprime tous les éléments d’un dictionnaire.
wife = {'name': 'Rose', 'age': 33, 'hair': 'brown'}
wife.clear()
wife
{}
Vérification des clés dans un Dictionnaire
person = {'name': 'Rose', 'age': 33}
'name' in person.keys()
True
'height' in person.keys()
False
'skin' in person # Vous pouvez omettre keys()
False
Vérification des valeurs dans un Dictionnaire
person = {'name': 'Rose', 'age': 33}
'Rose' in person.values()
True
33 in person.values()
True
Affichage soigné (Pretty Printing)
import pprint
wife = {'name': 'Rose', 'age': 33, 'has_hair': True, 'hair_color': 'brown', 'height': 1.6, 'eye_color': 'brown'}
pprint.pprint(wife)
{'age': 33,
'eye_color': 'brown',
'hair_color': 'brown',
'has_hair': True,
'height': 1.6,
'name': 'Rose'}
Fusionner deux dictionnaires
Pour Python 3.5 et supérieur :
dict_a = {'a': 1, 'b': 2}
dict_b = {'b': 3, 'c': 4}
dict_c = {**dict_b, **dict_a}
dict_c
{'a': 1, 'b': 3, 'c': 4}
Connectez-vous pour répondre à ce quiz et suivre votre progression d'apprentissage
{**dict_b, **dict_a}, que se passe-t-il si les deux dictionnaires ont la même clé ?dict_b écrase la valeur de dict_adict_a écrase la valeur de dict_b