Python Dictionary Tracing Problems for Beginners
Dictionaries are hash tables with insertion-ordered keys in modern Python. Interview questions exploit setdefault, dict comprehensions, and copying versus aliasing.
Tracing setdefault
counts = {}
for ch in 'aba':
counts.setdefault(ch, 0)
counts[ch] += 1
print(counts)Answer: {'a': 2, 'b': 1}. setdefault returns existing values without overwriting.
Copy vs reference
Assigning dict b = a aliases the object; b.copy() and dict(a) are shallow copies. Nested lists inside values still alias. Trace both levels in your table.
Ready for more? Open the dictionary practice page or launch the challenge workspace with concept=dictionaries.