Collections Reference
Advanced collections: Counters, defaultdicts, and double-ended queues.
Count frequency of elements in an iterable.
Used In: Log parsing, aggregate counts.
collections.Counter(iterable)from collections import Counter
c = Counter(['OOM', 'OOM', 'Success'])
print(c['OOM'])2Time Complexity: O(N) creation, O(1) retrieval
Common Mistakes: Assuming missing key raises KeyError; Counter returns 0 for missing items.
Related Methods: most_common()
Counter vs manual dict counting: Counter does not require membership checks or initializer counts.
Dict subclass that calls a factory function to supply missing values.
Used In: Grouping pipeline metrics, parsing graph adjacency lists.
collections.defaultdict(default_factory)from collections import defaultdict
d = defaultdict(list)
d['users'].append('Alex')
print(dict(d)){'users': ['Alex']}Time Complexity: O(1)
Common Mistakes: Accessing keys inadvertently creates them with default values.
Related Methods: dict.setdefault()
defaultdict vs dict.setdefault(): defaultdict creates elements on access; setdefault() requires explicitly passing default parameters on calls.