Bird
Raised Fist0
Pythonprogramming~20 mins

Nested dictionaries in Python - Practice Problems & Coding Challenges

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Challenge - 5 Problems
๐ŸŽ–๏ธ
Nested Dictionary Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
โ“ Predict Output
intermediate
2:00remaining
Output of nested dictionary access
What is the output of this Python code?
Python
data = {'team': {'leader': 'Alice', 'members': 5}}
print(data['team']['leader'])
A"team"
BKeyError
C5
DAlice
Attempts:
2 left
๐Ÿ’ก Hint
Look inside the nested dictionary under the key 'team'.
โ“ Predict Output
intermediate
2:00remaining
Length of nested dictionary
What is the output of this code?
Python
info = {'person': {'name': 'Bob', 'age': 30}, 'job': {'title': 'Engineer', 'years': 5}}
print(len(info['person']))
A2
B4
C1
DTypeError
Attempts:
2 left
๐Ÿ’ก Hint
Count the keys inside the nested dictionary under 'person'.
๐Ÿง  Conceptual
advanced
2:00remaining
Understanding nested dictionary update
What will be the value of data after running this code?
Python
data = {'outer': {'inner': 10}}
data['outer']['inner'] += 5
A{'outer': {'inner': 15}}
B{'outer': {'inner': 5}}
C{'outer': {'inner': 10}}
DTypeError
Attempts:
2 left
๐Ÿ’ก Hint
The += operator adds 5 to the current value.
โ“ Predict Output
advanced
2:00remaining
Accessing missing nested key error
What error does this code raise?
Python
d = {'a': {'b': 1}}
print(d['a']['c'])
ANo error, prints None
BKeyError
CIndexError
DTypeError
Attempts:
2 left
๐Ÿ’ก Hint
Check if the key 'c' exists inside the nested dictionary.
๐Ÿš€ Application
expert
3:00remaining
Count total keys in nested dictionary
What is the total number of keys in all levels of this nested dictionary?
Python
nested = {'x': {'y': {'z': 1}}, 'a': 2, 'b': {'c': 3, 'd': 4}}
A4
B6
C7
D5
Attempts:
2 left
๐Ÿ’ก Hint
Count keys at every level: top-level and nested inside.

Practice

(1/5)
1. What is a nested dictionary in Python?
Example: {'person': {'name': 'Alice', 'age': 30}}
easy
A. A dictionary with only one key
B. A dictionary inside another dictionary
C. A list inside a dictionary
D. A dictionary with numeric keys only

Solution

  1. Step 1: Understand dictionary structure

    A dictionary stores key-value pairs. Nested means one value is itself a dictionary.
  2. Step 2: Analyze the example

    In {'person': {'name': 'Alice', 'age': 30}}, the value for 'person' is another dictionary.
  3. Final Answer:

    A dictionary inside another dictionary -> Option B
  4. Quick Check:

    Nested dictionary = dictionary inside dictionary [OK]
Hint: Look for a dictionary as a value inside another dictionary [OK]
Common Mistakes:
  • Confusing nested dictionary with list inside dictionary
  • Thinking nested means only one key
  • Assuming keys must be numbers
2. Which of the following is the correct way to access the value 'blue' in this nested dictionary?
colors = {'shirt': {'color': 'blue', 'size': 'M'}}
easy
A. colors['shirt']['size']
B. colors['color']['shirt']
C. colors['shirt']['color']
D. colors['color']

Solution

  1. Step 1: Identify keys to reach 'blue'

    'blue' is the value of 'color' inside the dictionary for key 'shirt'.
  2. Step 2: Use correct key order

    Access outer key 'shirt' first, then inner key 'color': colors['shirt']['color'].
  3. Final Answer:

    colors['shirt']['color'] -> Option C
  4. Quick Check:

    Outer then inner keys = colors['shirt']['color'] [OK]
Hint: Use outer key first, then inner key in square brackets [OK]
Common Mistakes:
  • Swapping the order of keys
  • Trying to access keys that don't exist
  • Using only one key for nested value
3. What will be the output of this code?
data = {'user': {'name': 'Bob', 'age': 25}}
print(data['user']['age'])
medium
A. 25
B. Bob
C. {'name': 'Bob', 'age': 25}
D. KeyError

Solution

  1. Step 1: Access nested dictionary value

    data['user'] gives {'name': 'Bob', 'age': 25}.
  2. Step 2: Access 'age' key inside nested dictionary

    data['user']['age'] gives 25.
  3. Final Answer:

    25 -> Option A
  4. Quick Check:

    Nested key access returns 25 [OK]
Hint: Access keys step-by-step to get nested value [OK]
Common Mistakes:
  • Printing the whole nested dictionary instead of value
  • Using wrong key order
  • Expecting string 'Bob' instead of age
4. Find the error in this code snippet:
info = {'book': {'title': 'Python 101', 'pages': 200}}
print(info['book']['author'])
medium
A. No error, prints None
B. SyntaxError due to missing colon
C. TypeError because 'book' is not a dictionary
D. KeyError because 'author' key does not exist

Solution

  1. Step 1: Check keys in nested dictionary

    info['book'] has keys 'title' and 'pages', but no 'author'.
  2. Step 2: Accessing missing key causes error

    Trying info['book']['author'] raises KeyError because 'author' is missing.
  3. Final Answer:

    KeyError because 'author' key does not exist -> Option D
  4. Quick Check:

    Missing key access = KeyError [OK]
Hint: Check if key exists before accessing nested dictionary [OK]
Common Mistakes:
  • Assuming missing keys return None
  • Confusing KeyError with SyntaxError
  • Thinking nested dictionary keys are always present
5. Given this nested dictionary:
students = {
  'Alice': {'math': 90, 'science': 85},
  'Bob': {'math': 75, 'science': 95}
}

Which code correctly adds a new subject 'english' with score 88 for Alice?
hard
A. students['Alice']['english'] = 88
B. students['english']['Alice'] = 88
C. students['Alice'] = {'english': 88}
D. students['english'] = {'Alice': 88}

Solution

  1. Step 1: Identify where to add new subject

    We want to add 'english' score inside Alice's dictionary.
  2. Step 2: Add key-value pair inside nested dictionary

    Use students['Alice']['english'] = 88 to add the new subject and score.
  3. Final Answer:

    students['Alice']['english'] = 88 -> Option A
  4. Quick Check:

    Add key inside nested dict = students['Alice']['english'] = 88 [OK]
Hint: Add new key inside inner dictionary using outer then inner keys [OK]
Common Mistakes:
  • Replacing entire inner dictionary instead of adding key
  • Adding key at wrong dictionary level
  • Swapping keys order