Les dictionnaires sont une structure de données fondamentale en Python, utilisée pour le stockage et la manipulation de données. Ils sont similaires aux tableaux associatifs ou tables de hachage dans d’autres langages. Ce guide couvre les bases, la création, la modification, et les utilisations avancées des dictionnaires Python, tout en répondant aux questions fréquemment posées par les utilisateurs.
1. Qu’est-ce qu’un Dictionnaire en Python ?
Un dictionnaire est une collection non ordonnée de paires clef-valeur. Contrairement aux listes, les dictionnaires permettent de rechercher des valeurs via des clefs uniques. Les clefs doivent être de types immuables (comme des chaînes de caractères Python, entiers ou tuples), tandis que les valeurs peuvent être de n’importe quel type.
Exemple de création de dictionnaire :
mon_dictionnaire = {
"nom": "Jean",
"age": 25,
"ville": "Paris"
}
PythonDans cet exemple, « nom », « age », et « ville » sont les clefs, et « Jean », 25, « Paris » sont les valeurs.
2. Création et Initialisation de Dictionnaires
Les dictionnaires peuvent être créés de plusieurs façons :
- Utilisation de littéraux :
mon_dico = {"clef1": "valeur1", "clef2": "valeur2"}
Python- Utilisation de
dict()
:
mon_dico = dict(clef1="valeur1", clef2="valeur2")
Python- A partir de listes de tuples :
mon_dico = dict([("clef1", "valeur1"), ("clef2", "valeur2")])
Python3. Comment créer un dictionnaire en Python ?
Pour créer un dictionnaire, vous pouvez utiliser différentes méthodes selon vos préférences. Les exemples ci-dessus montrent les approches et les fonctions Python les plus courantes, utilisant soit des littéraux {}
, soit la fonction dict()
. Choisissez l’approche qui vous semble la plus simple et adaptée à votre cas d’utilisation.
4. Accès aux Eléments d’un Dictionnaire
Pour accéder à une valeur, on utilise sa clef. Il est recommandé d’utiliser get()
pour éviter des erreurs Python si la clef n’existe pas.
- Accès par la clef :
nom = mon_dictionnaire["nom"] # Renvoie "Jean"
Python- Utilisation de
get()
:
age = mon_dictionnaire.get("age", "Non renseigné") # Renvoie 25
email = mon_dictionnaire.get("email", "Non renseigné") # Renvoie "Non renseigné" si la clef n'existe pas
Python5. Comment parcourir un dictionnaire en Python ?
Les dictionnaires peuvent être parcourus de différentes manières, que ce soit pour accéder aux clefs, aux valeurs ou aux deux :
- Parcourir les clefs :
for clef in mon_dictionnaire:
print(clef)
Python- Parcourir les valeurs :
for valeur in mon_dictionnaire.values():
print(valeur)
Python- Parcourir les clefs et valeurs :
for clef, valeur in mon_dictionnaire.items():
print(f"{clef}: {valeur}")
Python6. Modifier et Ajouter des Eléments
Les dictionnaires sont modifiables : on peut changer une valeur ou ajouter une nouvelle paire clef-valeur.
- Modification d’une valeur :
mon_dictionnaire["age"] = 26
Python- Ajout d’une nouvelle clef :
mon_dictionnaire["profession"] = "Développeur"
Python- Utilisation de
update()
:
mon_dictionnaire.update({"ville": "Lyon", "pays": "France"})
Python7. Comment remplir un dictionnaire en Python ?
Vous pouvez remplir un dictionnaire au fur et à mesure en ajoutant de nouvelles paires clef-valeur, ou vous pouvez utiliser la méthode update()
pour ajouter plusieurs éléments en une seule fois.
8. Suppression d’Éléments
- Utilisation de
pop()
:
mon_dictionnaire.pop("ville") # Supprime la clef "ville"
Python- Utilisation de
del
:
del mon_dictionnaire["nom"]
Python- Utilisation de
popitem()
:
mon_dictionnaire.popitem() # Supprime la dernière paire clef-valeur ajoutée
Python- Pour vider le dictionnaire :
mon_dictionnaire.clear()
Python9. Opérations Utiles avec les Dictionnaires
- Vérifier l’existence d’une clef :
if "nom" in mon_dictionnaire:
print("La clef 'nom' existe")
Python- Obtenir la longueur du dictionnaire :
nb_elements = len(mon_dictionnaire)
Python- Fusionner deux dictionnaires (Python 3.9+) :
dico1 = {"a": 1, "b": 2}
dico2 = {"b": 3, "c": 4}
merged_dico = dico1 | dico2
Python10. Utilisations Avancées des Dictionnaires
- Dictionnaires imbriqués :
etudiant = {
"nom": "Alice",
"age": 22,
"notes": {
"math": 15,
"physique": 18
}
}
PythonPour accéder à la note de physique :
note_physique = etudiant["notes"]["physique"]
Python- Compréhensions de dictionnaires :
doubles = {x: x * 2 for x in range(5)}
Python11. Optimisation des Dictionnaires
Les dictionnaires sont optimisés pour accéder aux valeurs via leurs clefs grâce à leur implémentation utilisant des tables de hachage, offrant une complexité moyenne de O(1) pour la recherche, l’insertion et la suppression. Pour des cas sensibles à la mémoire, envisagez des alternatives comme collections.defaultdict
ou collections.OrderedDict
.
12. Cas d’Utilisation des Dictionnaires
Les dictionnaires sont très utiles pour :
- Stocker des configurations : les paramètres d’une application peuvent être facilement manipulés avec des clefs-valeurs.
- Compter des occurrences :
texte = "bonjour bonjour tout le monde"
mots = texte.split()
compteur = {}
for mot in mots:
compteur[mot] = compteur.get(mot, 0) + 1
print(compteur) # {'bonjour': 2, 'tout': 1, 'le': 1, 'monde': 1}
PythonConclusion
Les dictionnaires Python sont flexibles et performants, essentiels pour de nombreuses applications. Leur capacité à associer des clefs et des valeurs permet de résoudre des problèmes de manière efficace. Que vous soyez débutant ou développeur confirmé, maîtriser les dictionnaires est essentiel pour tirer parti de Python. Consultez notre blog pour d’autres guides sur les structures de données en Python !