Dictionnaires Python : cartes de structure et de hachage

Maîtrisez les dictionnaires Python. Apprenez à stocker, récupérer et gérer les données des paires clé-valeur. Comprendre les performances et les meilleures pratiques pour les mappages.

Essayez dans l'éditeur

Aperçu

Les dictionnaires sont sans doute la structure de données la plus importante et la plus optimisée de Python. Un dictionnaire est une collection mutable de valeurs de données stockées dans des paires « clé : valeur ». Si vous imaginez un dictionnaire du monde réel, la « clé » est le mot que vous recherchez et la « valeur » est la définition. Cette structure de couplage rend incroyablement efficace la récupération, la mise à jour et la gestion des données relationnelles.

Sous le capot, les dictionnaires Python sont implémentés sous forme de tables de hachage (ou Hash Maps) hautement optimisées. Cela implique que récupérer une valeur par sa clé est une opération à temps constant « O(1) ». Que votre dictionnaire contienne dix éléments ou dix millions d'éléments, Python peut accéder instantanément directement à l'adresse mémoire de la valeur sans avoir besoin de parcourir l'intégralité de la collection.

Pour définir un dictionnaire, vous utilisez des accolades `{}` avec des clés et des valeurs séparées par des deux-points `:`. Les clés doivent être de types immuables (comme des chaînes, des entiers ou des tuples), ce qui signifie que vous ne pouvez pas utiliser une liste comme clé de dictionnaire. Cependant, les valeurs peuvent être absolument n'importe quoi, y compris des listes, des objets ou même des dictionnaires profondément imbriqués, ce qui les rend parfaites pour représenter des structures de données de type JSON.

L'accès aux valeurs se fait en utilisant la notation entre crochets (par exemple, `user["name"]`). Cependant, si la clé n'existe pas, cette approche renvoie une « KeyError », interrompant immédiatement l'exécution du programme. Pour écrire du code plus sûr, les professionnels utilisent la méthode `.get()` (par exemple, `user.get("name")`), qui renvoie gracieusement `None` ou une valeur par défaut personnalisée si la clé est manquante, évitant ainsi les plantages inutiles.

Historiquement, les dictionnaires Python étaient complètement désordonnés. Cependant, depuisPython 3.7, il est officiellement garanti que les dictionnaires maintiennent l'ordre d'insertion. Cela signifie que lorsque vous parcourez un dictionnaire à l'aide de méthodes telles que `.keys()`, `.values()` ou `.items()`, les éléments seront renvoyés dans l'ordre exact dans lequel ils ont été initialement ajoutés au dictionnaire, combinant la vitesse des cartes de hachage avec la prévisibilité des listes.

Sortie de code et d'exécution

Création d'un profil de configuration utilisateur utilisant fortement des paires clé-valeur imbriquées.

user = {
    "username": "coder123",
    "role": "admin",
    "active": True
}

user["last_login"] = "2026-04-10" # Adding a key
print(f"Username is {user['username']}")

# Iterating over key-value pairs
for key, value in user.items():
    print(f"{key}: {value}")
Sortie terminale
Username is coder123
username: coder123
role: admin
active: True
last_login: 2026-04-10

Mise en œuvre étape par étape

  • Gestion des réponses JSON des API REST
  • Mappage d'ID uniques à des objets de données volumineux
  • Stockage des paramètres de configuration de l'application

Foire aux questions

Que se passe-t-il si j'essaie d'accéder à une clé qui n'existe pas ?

L'utilisation de la notation entre crochets (user["name"]) génère une KeyError. Utilisez user.get("name") pour renvoyer None à la place sans lancer.

Sujets connexes

Ressources Python recommandées

Développez vos connaissances avec des didacticiels interactifs, des aide-mémoire et des comparaisons de codes associés.