Le module `collections` en Python est un module intégré qui implémente des alternatives de conteneurs basés sur des listes spécialisées avec quelques fonctionnalités supplémentaires. Il offre des alternatives aux conteneurs généraux de Python comme les dictionnaires, les listes, les sets et les tuples. Voici quelques exemple de comment l’utiliser :
1. Counter :
Le type Counter est une sous-classe de dict utilisée pour compter les objets hachables.
```
from collections import Counter
cnt = Counter()
for word in [‘red’, ‘blue’, ‘red’, ‘green’, ‘blue’, ‘blue’]: cnt[word] += 1
print(cnt)
1. OrderedDict :
OrderedDict est un dictionnaire qui se souvient de l’ordre des éléments insérés. Lorsque vous itérez sur un OrderedDict, les éléments sont renvoyés dans l’ordre dans lequel les clés ont été ajoutées pour la première fois.
```
from collections import OrderedDict
d = OrderedDict()
d[‘apple’] = 4
d[‘banana’] = 3
for fruit, count in d.items():
print(fruit, count)
```
1. defaultdict :
Un defaultdict fonctionne exactement comme un dictionnaire normal, mais il est initialisé avec une fonction qui prend un argument (nommé defaultdict) qui retourne la valeur par défaut pour le dictionnaire donné.
```
from collections import defaultdict
dd = defaultdict(int)
nums = [1, 2, 3, 4, 5, 6]
for num in nums:
dd[num] += 1
print(dd)
```
1. namedtuple :
Une namedtuple permet de créer des sous-classes de tuple avec des champs nommés. Cela peut être considéré comme une extension des tuples.
```
from collections import namedtuple
Point = namedtuple(‘Point’, [‘x’, ‘y’])
p = Point(11, y=22) # instancie avec des arguments positionnels ou par mots-clés
print(p0 + p1) # index access
print(p.x + p.y) # field access
color = namedtuple(‘rgb’,[‘red’,‘green’,‘blue’])
pixel = color(red=55,green=155,blue=255)
print(pixel.red)
```
Les autres composants de collections sont : ChainMap, deque, UserDict, UserList et UserString. Le module collections rend Python plus efficace et optimisé pour travailler avec des structures de données complexes.