← Back to Python

All Topics

Advertisement

Learn/Python/Advanced Python

DefaultDict

Topic: Data Structures

Advertisement

Introduction

DefaultDict provides default values for missing keys, eliminating key existence checks.

Basic Usage

from collections import defaultdict

# List as default factory
dd_list = defaultdict(list)
dd_list["fruits"].append("apple")
print(dd_list["fruits"])  # ['apple']
print(dd_list["vegetables"])  # [] - empty list created

# Integer as default (counter)
dd_int = defaultdict(int)
dd_int["apples"] += 1
print(dd_int["apples"])  # 1
print(dd_int["oranges"])  # 0

Grouping with DefaultDict

from collections import defaultdict

fruits = ["apple", "banana", "apple", "cherry", "banana", "apple"]

# Group by fruit
grouped = defaultdict(list)
for fruit in fruits:
    grouped[fruit].append(fruit)

# Result: {'apple': ['apple', 'apple', 'apple'], ...}

Custom Factory

from collections import defaultdict

def default_dict_factory():
    return {"count": 0, "items": []}

dd_custom = defaultdict(default_dict_factory)
dd_custom["key"]["count"] += 1

Practice Problems

  1. Count word frequencies in text
  2. Group items by category
  3. Create nested default dictionary
  4. Use set as default factory
  5. Build adjacency list for graph

Advertisement

Advertisement

Need More Practice?

Get personalized Python help from ChatWhole's AI-powered platform.

Get Expert Help →