Bird
Raised Fist0
Pythonprogramming~30 mins

Nested dictionaries in Python - Mini Project: Build & Apply

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
Nested Dictionaries
๐Ÿ“– Scenario: You work at a small bookstore. You want to organize information about books by category and details like author and price.
๐ŸŽฏ Goal: Create a nested dictionary to store book details by category, then print the price of a specific book.
๐Ÿ“‹ What You'll Learn
Create a nested dictionary with categories as keys and dictionaries of books as values
Each book dictionary should have keys 'author' and 'price'
Access nested dictionary values using keys
Print the price of a specific book
๐Ÿ’ก Why This Matters
๐ŸŒ Real World
Nested dictionaries help organize complex data like product catalogs, user profiles, or settings grouped by categories.
๐Ÿ’ผ Career
Understanding nested dictionaries is important for data handling, configuration management, and working with JSON-like data in many programming jobs.
Progress0 / 4 steps
1
Create the nested dictionary
Create a dictionary called bookstore with two categories: 'Fiction' and 'Science'. Each category should be a dictionary with these books and details exactly:
'Fiction': {'The Great Gatsby': {'author': 'F. Scott Fitzgerald', 'price': 10.99}, '1984': {'author': 'George Orwell', 'price': 8.99}}
'Science': {'A Brief History of Time': {'author': 'Stephen Hawking', 'price': 15.99}, 'The Selfish Gene': {'author': 'Richard Dawkins', 'price': 12.99}}
Python
Hint

Use curly braces to create dictionaries. The value for each category is another dictionary with book titles as keys.

2
Set the category to look up
Create a variable called category and set it to the string 'Fiction'.
Python
Hint

Just assign the string 'Fiction' to the variable category.

3
Access the nested dictionary
Create a variable called book and set it to the string '1984'. Then create a variable called price and set it to the price of the book '1984' in the category inside bookstore.
Python
Hint

Use square brackets to access nested dictionaries: bookstore[category][book]['price'].

4
Print the price
Write a print statement to display the price stored in the variable price.
Python
Hint

Use print(price) to show the price.

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