collections Module (deque, Counter, defaultdict)
On this page
Why collections
collections provides specialized data structures that are safer and often faster than rolling your own patterns.
deque for Queues
from collections import deque
q = deque(["job1", "job2"])
q.append("job3")
item = q.popleft()
Counter for Counting
from collections import Counter c = Counter(["ok", "ok", "fail"]) print(c["ok"])
defaultdict for Grouping
from collections import defaultdict
groups = defaultdict(list)
groups["A"].append("alice")
groups["A"].append("bob")
Operational Checklist
- Use
dequefor queue-like workloads (popleft is efficient). - Use
Counterfor counting outcomes and metrics snapshots. - Use
defaultdictfor grouping to avoid key-existence boilerplate.
Failure Modes
- List as queue:
pop(0)becomes slow under load. - Manual counting bugs: missing initialization leads to KeyError or wrong totals.