PYTHON Reference Guide
Revision Time: 2 mins

Collections Reference

Advanced collections: Counters, defaultdicts, and double-ended queues.

Counter
Return: Counter

Count frequency of elements in an iterable.

Used In: Log parsing, aggregate counts.

Syntax signature:collections.Counter(iterable)
Code snippet:
python
from collections import Counter
c = Counter(['OOM', 'OOM', 'Success'])
print(c['OOM'])
Expected Output:2

Time Complexity: O(N) creation, O(1) retrieval

Common Mistakes: Assuming missing key raises KeyError; Counter returns 0 for missing items.

Related Methods: most_common()

Comparison:

Counter vs manual dict counting: Counter does not require membership checks or initializer counts.

Remember: Inherits from dict, providing O(1) access to frequencies.
defaultdict
Return: defaultdict

Dict subclass that calls a factory function to supply missing values.

Used In: Grouping pipeline metrics, parsing graph adjacency lists.

Syntax signature:collections.defaultdict(default_factory)
Code snippet:
python
from collections import defaultdict
d = defaultdict(list)
d['users'].append('Alex')
print(dict(d))
Expected Output:{'users': ['Alex']}

Time Complexity: O(1)

Common Mistakes: Accessing keys inadvertently creates them with default values.

Related Methods: dict.setdefault()

Comparison:

defaultdict vs dict.setdefault(): defaultdict creates elements on access; setdefault() requires explicitly passing default parameters on calls.

Remember: Replaces verbose if key not in dict checks.