DefaultDict

Advanced PythonData StructuresFree Lesson

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

Need Expert Python Help?

Get personalized tutoring, project support, or professional consulting.

Advertisement