Les Structures de Données en Python

Introduction aux Structures de Données

Les structures de données en Python sont des conteneurs organisés qui permettent de stocker et de manipuler des collections d'objets. Python offre plusieurs types de structures de données intégrées, chacune avec ses propres caractéristiques et cas d'utilisation.

Concepts Fondamentaux

  • Mutabilité : Détermine si une structure peut être modifiée après sa création
  • Hashabilité : Indique si un objet peut être utilisé comme clé de dictionnaire
  • Ordre : Définit si les éléments maintiennent un ordre spécifique

# Exemples de structures mutables et immutables
# Mutable
liste = [1, 2, 3]       # Liste
liste[0] = 10           # Modification possible

# Immutable
tuple_ex = (1, 2, 3)    # Tuple
# tuple_ex[0] = 10      # Erreur ! Les tuples sont immutables

# Hashable vs Non-hashable
dictionnaire = {}
dictionnaire[(1, 2)] = "OK"     # Les tuples sont hashables
# dictionnaire[[1, 2]] = "Erreur" # Les listes ne sont pas hashables
          

Types de Structures de Données

Structures Mutables

  • Listes : Séquences ordonnées et modifiables
  • Dictionnaires : Collections de paires clé-valeur
  • Ensembles : Collections non ordonnées d'éléments uniques

Structures Immutables

  • Tuples : Séquences ordonnées et non modifiables
  • Chaînes : Séquences de caractères
  • Frozensets : Ensembles immutables

# Démonstration de l'ordre
# Liste : maintient l'ordre
liste = [3, 1, 2]
liste.sort()
print(liste)  # [1, 2, 3]

# Ensemble : non ordonné
ensemble = {3, 1, 2}
print(ensemble)  # L'ordre peut varier

# Dictionnaire : maintient l'ordre d'insertion (Python 3.7+)
dico = {'c': 3, 'a': 1, 'b': 2}
print(list(dico.keys()))  # ['c', 'a', 'b']
          

Hashabilité et Performance

La hashabilité est une propriété cruciale qui détermine si un objet peut être utilisé comme clé de dictionnaire ou élément d'ensemble. Les objets hashables sont généralement immutables.

  • Les types immutables (int, float, str, tuple) sont hashables
  • Les types mutables (list, dict, set) ne sont pas hashables
  • La hashabilité permet des recherches O(1) dans les dictionnaires et ensembles

Choisir la Bonne Structure

  • Besoin de modifier les données : Utilisez des structures mutables (listes, dictionnaires, ensembles)
  • Données en lecture seule : Préférez les structures immutables (tuples, frozensets)
  • Besoin d'unicité : Optez pour les ensembles
  • Associations clé-valeur : Utilisez les dictionnaires
  • Séquences ordonnées : Choisissez les listes ou les tuples

Prochaines Étapes

Dans les prochaines leçons, nous explorerons en détail chaque structure de données :

  • Les listes et leurs opérations
  • Les tuples et l'immutabilité
  • Les ensembles et les opérations ensemblistes
  • Les dictionnaires et leur utilisation
  • Les chaînes de caractères et leurs méthodes

That's all folks