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 | Maintain insertion order (pre-3.7) |
| ChainMap | View multiple dicts as one |
Sample snippet
from collections import Counter, defaultdict
counts = Counter(["ok", "fail", "ok"])
grouped = defaultdict(list)
for order in orders:
grouped[order.customer_id].append(order)
Ecosystem tips
- Combine
dequewithitertoolssliding windows. - Convert
namedtupleto dataclasses when you need methods or defaults. - Use
Counter.most_common()for leaderboard-style logic.