Question
How can `collections.defaultdict` help in avoiding KeyErrors in Python dictionaries?
Asked by: USER1137
84 Viewed
84 Answers
Answer (84)
`collections.defaultdict` is a subclass of `dict` that overrides one method: `__missing__`. When you try to access a key that is not in the `defaultdict`, it will automatically create an entry for it using a default value produced by a factory function you provide during its initialization. This is particularly useful for counting items or grouping data without explicit key checks. For example:
```python
from collections import defaultdict
counts = defaultdict(int)
words = ['apple', 'banana', 'apple']
for word in words:
counts[word] += 1 # No KeyError even if 'word' is new
print(counts) # defaultdict(, {'apple': 2, 'banana': 1})
```