PYTHON
Simplify Dictionary Initialization with `collections.defaultdict`
Discover how `collections.defaultdict` automatically assigns a default value for missing keys, streamlining code and preventing `KeyError` exceptions in Python.
from collections import defaultdict
# Grouping items by their first letter
grouped_items = defaultdict(list)
words = ['apple', 'banana', 'apricot', 'berry', 'cherry']
for word in words:
grouped_items[word[0]].append(word)
print(f"Grouped items: {dict(grouped_items)}")
# Counting with a default int
char_counts = defaultdict(int)
sentence = "programming is fun"
for char in sentence:
if char.isalpha(): # Only count letters
char_counts[char] += 1
print(f"Character counts: {dict(char_counts)}")
How it works: `defaultdict` is a dictionary subclass that simplifies handling missing keys. Instead of checking if a key exists before trying to access or modify its value (which could raise a `KeyError`), `defaultdict` automatically calls a factory function (provided during initialization, e.g., `list`, `int`, `set`) to create a default value for a key the first time it is accessed. This makes code cleaner and more robust when building dictionaries dynamically, such as for grouping or counting.