- Aperçu des dictionnaires
Les dictionnaires en Python sont des conteneurs mutables capables de stocker des éléments de tout type. Ils organisent les données en paires clé-valeur, où chaque clé doit être unique. Dans les versions antérieures à Python 3.7, les dictionnaires sont non ordonnés ; à partir de Python 3.7, ils préservent l'ordre d'insertion.
- Manipulation fondamentale
2.1 Instanciation
Un dictionnaire peut être créé à l'aide d'accolades {} ou de la fonction dict().
# Avec des accolades
inventaire = {'poire': 5, 'cerise': 10, 'datte': 3}
# Avec dict()
registre = dict(poire=5, cerise=10, datte=3)
# Initialisation vide
collection_vide = {}
# ou
autre_collection_vide = dict()
2.2 Consultation, modification et ajout
Consultation
print(inventaire['poire']) # Résultat: 5
Pour éviter une exception KeyError avec des clés inexistantes, privilégiez la méthode get().
print(inventaire.get('figue', 'Absent')) # Résultat: 'Absent'
Modification
inventaire['poire'] = 25
print(inventaire['poire']) # Résultat: 25
Ajout d'une paire
inventaire['raisin'] = '2023-11-05'
print(inventaire)
2.3 Suppression
# Avec l'instruction del
del inventaire['cerise']
# Avec pop(), qui retourne la valeur supprimée
element = inventaire.pop('datte')
2.4 Itération
Parcouerz les éléments avec des boucles for ciblées.
animaux = {'chien': 'labrador', 'chat': 'persan', 'oiseau': 'perroquet'}
# Itération sur les clés
for cle in animaux:
print(cle)
# Itération sur les valeurs
for valeur in animaux.values():
print(valeur)
# Itération sur les paires clé-valeur
for cle, valeur in animaux.items():
print(cle, valeur)
- Méthodes utiles
Les méthodes keys(), values(), items(), update(), popitem() et clear() sont essentielles.
# Exemple avec update()
donnees_base = {'x': 100, 'y': 200}
nouvelles_donnees = {'y': 250, 'z': 300}
donnees_base.update(nouvelles_donnees)
print(donnees_base) # {'x': 100, 'y': 250, 'z': 300}
- Fonctions et méthodes intégrées
Voici des opérations courantes :
- clear() : Efface toutes les paires du dictionnaire.
- pop(clé) : Supprime et retourne la valeur associée à la clé.
- popitem() : Supprime et retourne la dernière paire insérée (Python 3.7+).
- update(autre_dict) : Fusionne un autre dictionnaire dans le courant.
- get(clé, défaut) : Retourne la valeur pour la clé ou une valeur par défaut.
- keys(), values(), items() : Fournissent des vues sur les clés, valeurs ou paires.
- len(dict) : Donne le nombre total de paires.
- str(dict) : Convertit le dictionnaier en chaîne de caractères.
- type(variable) : Indique le type de la variable passée en argument.
Analyse de items() et copy()
La méthode items() renvoie un objet itérable de type dict_items.
for cle, valeur in animaux.items():
print(f"{cle} : {valeur}")
La méthode copy() effectue une copie superficielle du dictionnaire.
Copie superficielle : plusieurs références partagent la même zone mémoire. Copie profonde : duplication complète dans un nouvel espace mémoire.
import copy
# Copie superficielle
tableau = [10, 20, [30, 40]]
copie_superficielle = copy.copy(tableau)
tableau[2][0] = 99
print(tableau) # [10, 20, [99, 40]]
print(copie_superficielle) # [10, 20, [99, 40]]
# Copie profonde
tableau2 = [10, 20, [30, 40]]
copie_profonde = copy.deepcopy(tableau2)
tableau2[2][0] = 99
print(tableau2) # [10, 20, [99, 40]]
print(copie_profonde) # [10, 20, [30, 40]]
En copie superficielle, toute altération des éléments imbriqués affecte toutes les instances. En copie profonde, les structures sont totalement indépendantes.