Collections Python avancées : defaultdict, Counter, deque, namedtuple, etc.

Exploiter le module collections de Python pour des structures de données puissantes

Plongez dans le module de collections de Python et explorez des structures de données avancées telles que defaultdict, Counter, deque et namedtuple. Apprenez à utiliser ces outils pour simplifier votre code et améliorer les performances des tâches de traitement des données.

Programmation
Auteur·rice
Affiliation
Date de publication

9 février 2024

Modifié

9 mai 2025

Mots clés

Module de collections Python, tutoriel defaultdict, Compteur en Python, Utilisation deque Python, exemple de namedtuple, Collections Python avancées

Introduction

Le module intégré collections de Python offre plusieurs structures de données puissantes qui étendent les capacités des types standard. Dans ce tutoriel, nous allons explorer certaines de ces collections avancées - telles que defaultdict, Counter, deque, et namedtuple - et démontrer comment elles peuvent simplifier votre code et améliorer les performances lors de tâches de traitement de données complexes.



defaultdict Sous-classe

Le module defaultdict est une sous-classe du module intégré dict qui renvoie une valeur par défaut lorsqu’une clé est manquante. Ceci élimine le besoin de vérifier l’existence des clés.

#|label: defaultdict-example
from collections import defaultdict

# Créer un dictionnaire par défaut avec une liste comme usine par défaut.
dd = defaultdict(list)

# Ajouter des valeurs aux clés.
dd["fruits"].append("apple")
dd["fruits"].append("banana")
dd["vegetables"].append("carrot")

print("defaultdict:", dict(dd))

Résultats:

defaultdict: {'fruits': ['apple', 'banana'], 'vegetables': ['carrot']}

Counter Sous-classe

La classe Counter est utile pour compter les objets hachables. Il est facile de compter les occurrences et d’effectuer des opérations telles que la recherche des éléments les plus communs.

#|label: counter-example
from collections import Counter

data = ["apple", "banana", "apple", "orange", "banana", "apple"]
counter = Counter(data)

print("Counter:", counter)
print("Most common:", counter.most_common(2))

Résultats:

Counter: Counter({'apple': 3, 'banana': 2, 'orange': 1})
Most common: [('apple', 3), ('banana', 2)]

deque Sous-classe

deque (file d’attente double) prend en charge les ajouts et les suppressions rapides des deux côtés, ce qui le rend idéal pour la mise en œuvre de files d’attente ou de piles.

#|label: deque-example
from collections import deque

# Créer un deque et ajouter des éléments aux deux extrémités.
d = deque([1, 2, 3])
d.append(4)          # Ajouter à droite
d.appendleft(0)      # Ajouter à gauche

print("Deque:", d)

# Retirer les éléments des deux extrémités.
right = d.pop()
left = d.popleft()

print("After popping, deque:", d)
print("Popped from right:", right, "and left:", left)

Résultats:

Deque: deque([0, 1, 2, 3, 4])
After popping, deque: deque([1, 2, 3])
Popped from right: 4 and left: 0

namedtuple Sous-classe

namedtuple permet de créer des types d’objets légers avec des champs nommés. Ils sont immuables et peuvent être utilisés comme des tuples ordinaires tout en améliorant la lisibilité du code.

#|label: namedtuple-example
from collections import namedtuple

# Définir un triplet nommé 'Point'.
Point = namedtuple("Point", ["x", "y"])

# Créer une instance de Point.
p = Point(x=10, y=20)

print("Namedtuple Point:", p)
print("X coordinate:", p.x)
print("Y coordinate:", p.y)

Résultats:

Namedtuple Point: Point(x=10, y=20)
X coordinate: 10
Y coordinate: 20

Collections supplémentaires

Bien que les exemples ci-dessus couvrent les collections avancées les plus courantes, le module collections de Python comprend également les éléments suivants:

  • OrderedDict: Bien que les dicts de Python 3.7+ conservent l’ordre d’insertion, OrderedDict peut être utile pour des opérations d’ordonnancement spécifiques.
  • ChainMap: Pour gérer plusieurs dictionnaires comme un seul.
  • UserDict, UserList et UserString : Pour faciliter la sous-classification des types intégrés.

Conclusion

Les structures de données avancées du module collections peuvent simplifier de nombreuses tâches en fournissant des fonctionnalités intégrées qui vont au-delà des types de données standard. L’utilisation d’outils tels que defaultdict, Counter, deque, et namedtuple peut conduire à un code plus propre, plus efficace et plus lisible. Expérimentez ces collections pour voir comment elles peuvent améliorer votre traitement des données et votre logique d’application.

Plus d’informations

Bon codage et bonne maîtrise des collections avancées de Python!

Explorer d’autres articles

Note

Voici d’autres articles de la même catégorie pour vous aider à approfondir le sujet.

placeholder

placeholder
Aucun article correspondant
Retour au sommet

Réutilisation

Citation

BibTeX
@online{kassambara2024,
  author = {Kassambara, Alboukadel},
  title = {Collections Python avancées : defaultdict, Counter, deque,
    namedtuple, etc.},
  date = {2024-02-09},
  url = {https://www.datanovia.com/fr/learn/programming/python/additional-tutorials/collections-module.html},
  langid = {fr}
}
Veuillez citer ce travail comme suit :
Kassambara, Alboukadel. 2024. “Collections Python avancées : defaultdict, Counter, deque, namedtuple, etc.” February 9, 2024. https://www.datanovia.com/fr/learn/programming/python/additional-tutorials/collections-module.html.