Skip to content
Foxipa
Code Completion 4 Challenges

Complete the collections.defaultdict code

Practice grouping values, collecting unique labels, reading without insertion, and creating independent per-key records.

Intermediate ~8 min read

Challenge 1

Collect the values for each category in an independent list.

python Your answer
from collections import defaultdict

records = [("tool", "hammer"), ("food", "pear"), ("tool", "wrench")]
groups = 
for category, values in groups.items():
    print(category, values)

Press Ctrl⌘Enter to check your answer

Challenge 2

Store unique labels for each team, discarding repeated labels.

python Your answer
from collections import defaultdict

labels = 
labels["blue"].add("urgent")
labels["blue"].add("urgent")
labels["red"].add("review")
print(sorted(labels["blue"]))
print(sorted(labels["red"]))

Press Ctrl⌘Enter to check your answer

Challenge 3

Read an optional label without creating a missing entry.

python Your answer
from collections import defaultdict
labels = defaultdict(list)

print(value)
print("missing" in labels)

Press Ctrl⌘Enter to check your answer

Challenge 4

Use make_record to provide a separate record for each new project key.

python Your answer
from collections import defaultdict

def make_record():
    return {"open": 0, "closed": 0}

records = 
records["alpha"]["open"] += 1
records["beta"]["closed"] += 2
print(records["alpha"])
print(records["beta"])

Press Ctrl⌘Enter to check your answer