Data Structures with `collections`
Standard Library
collections Module Tour
`collections` upgrades built-in data structures with specialized versions tuned for real workloads.
Workhorses
| Type | Use case |
|---|---|
| Counter | Count occurrences or run frequency analysis |
| defaultdict | Group items without manual key checks |
| deque | Fast appends/popleft for queues |
| namedtuple | Lightweight, immutable records |
| OrderedDict | Equality comparison considers order (regular dicts maintain insertion order since 3.7) |
| ChainMap | View multiple dicts as one |
Sample snippet
from collections import Counter, defaultdict
counts = Counter(["ok", "fail", "ok"])
print(counts.most_common(1)) # [('ok', 2)]
grouped = defaultdict(list)
orders = [{"customer": "A", "item": "x"}, {"customer": "A", "item": "y"}]
for order in orders:
grouped[order["customer"]].append(order["item"])
Ecosystem tips
- Combine
dequewithitertoolssliding windows. - Convert
namedtupleto dataclasses when you need methods or defaults. - Use
Counter.most_common()for leaderboard-style logic.