Les dictionnaires en Python : Structures de données clé-valeur

  1. 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.

  1. 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)

  1. 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}
  1. 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.

Étiquettes: Python dictionnaires structures-de-données copie-profonde copie-peu-profonde

Publié le 25 juin à 17h34