PYTHON Contents

collections Module (deque, Counter, defaultdict)

Use collections tools like deque, Counter, and defaultdict to write simpler, faster code with fewer edge-case bugs.

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 deque for queue-like workloads (popleft is efficient).
  • Use Counter for counting outcomes and metrics snapshots.
  • Use defaultdict for 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.