What is Python's collections module?
Why Interviewers Ask This
Mid-level Python roles require deep understanding of this topic. Interviewers ask this to separate candidates who truly understand the mechanics from those who only know surface-level concepts.
Answer
The collections module provides specialized container types. namedtuple: tuple subclass with named fields — Point = namedtuple("Point", ["x", "y"]); p = Point(1, 2); p.x. deque: double-ended queue with O(1) append and popleft — better than list for queue operations. defaultdict: dict that calls a factory for missing keys — defaultdict(list) auto-creates empty lists. Counter: counts hashable objects — Counter("hello") → {"l": 2, "h": 1, "e": 1, "o": 1}; supports most_common(n). OrderedDict: dict that remembers insertion order (less useful in Python 3.7+ where all dicts are ordered). ChainMap: combines multiple dicts into a single view, looking up keys through the chain. UserDict/UserList/UserString: base classes for creating dict/list/string subclasses.
Pro Tip
Before answering, structure your response: one-line definition → real-world analogy → concrete example from a project. This makes even complex Python answers easy to follow.
Previous
What is Python's functools module?
Next
What is the GIL (Global Interpreter Lock) in Python?