📦

How to Use defaultdict in Python

PythonIntermediate

Create dictionaries with default values.

Code Example

Python
from collections import defaultdict

# Basic defaultdict
dd = defaultdict(int)
dd["a"] += 1
dd["b"] += 1
dd["a"] += 1

print(f"Defaultdict: {dict(dd)}")

# Group items
words = ["apple", "banana", "apple", "cherry", "banana", "apple"]
word_count = defaultdict(int)
for word in words:
    word_count[word] += 1

print(f"\nWord counts: {dict(word_count)}")

# Default list
dd_list = defaultdict(list)
dd_list["fruits"].append("apple")
dd_list["fruits"].append("banana")
dd_list["vegetables"].append("carrot")

print(f"\nGrouped: {dict(dd_list)}")

# Default set
dd_set = defaultdict(set)
dd_set["colors"].add("red")
dd_set["colors"].add("blue")
dd_set["colors"].add("red")  # Duplicate ignored

print(f"\nUnique: {dict(dd_set)}")

# Custom default factory
def default_value():
    return "N/A"

dd_custom = defaultdict(default_value)
print(f"\nCustom default: {dd_custom['missing']}")

Explanation

defaultdict automatically creates missing keys with default value. Pass factory function (int, list, set, or custom) to constructor.

Related Tutorials