Bird
Raised Fist0
Pythonprogramming~30 mins

Dictionary iteration 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
Dictionary iteration
๐Ÿ“– Scenario: You work in a small bookstore. You have a list of books with their prices stored in a dictionary. You want to check each book and its price to prepare a price list for customers.
๐ŸŽฏ Goal: Learn how to go through each item in a dictionary using a for loop and display the book names with their prices.
๐Ÿ“‹ What You'll Learn
Create a dictionary with book names as keys and prices as values
Create a variable to count how many books cost more than a certain price
Use a for loop with variables book and price to iterate over the dictionary items
Print the book names and prices in a readable format
Print the count of books that cost more than the given price
๐Ÿ’ก Why This Matters
๐ŸŒ Real World
Bookstores and shops often keep product prices in dictionaries or similar data structures. Iterating over these helps prepare price lists or reports.
๐Ÿ’ผ Career
Knowing how to iterate over dictionaries is essential for data processing, reporting, and many programming tasks in software development and data analysis.
Progress0 / 4 steps
1
Create the books dictionary
Create a dictionary called books with these exact entries: 'Python Basics': 29.99, 'Data Science 101': 39.95, 'Machine Learning': 49.50, 'Deep Learning': 59.99, 'AI for Everyone': 24.99
Python
Hint

Use curly braces {} to create a dictionary. Put book names as keys and prices as values separated by colons.

2
Set the price threshold
Create a variable called price_threshold and set it to 40. This will help us count books costing more than this price.
Python
Hint

Just write price_threshold = 40 on a new line.

3
Count expensive books using a for loop
Create a variable called count_expensive and set it to 0. Then use a for loop with variables book and price to iterate over books.items(). Inside the loop, increase count_expensive by 1 if price is greater than price_threshold.
Python
Hint

Start with count_expensive = 0. Then write for book, price in books.items():. Inside the loop, use an if to check price and add 1 to count_expensive.

4
Print the books and count
Use a for loop with variables book and price to iterate over books.items(). Inside the loop, print the book and price in this format: Book: {book}, Price: ${price} using an f-string. After the loop, print Number of books costing more than $40: {count_expensive}.
Python
Hint

Use a for loop to print each book and price with print(f"Book: {book}, Price: ${price}"). Then print the count with print(f"Number of books costing more than $40: {count_expensive}").

Practice

(1/5)
1. What does the following code do?
for key in my_dict:
easy
A. Iterates over the keys of the dictionary
B. Iterates over the values of the dictionary
C. Iterates over the key-value pairs as tuples
D. Raises a syntax error

Solution

  1. Step 1: Understand the for loop syntax

    The loop uses for key in my_dict, which by default iterates over dictionary keys.
  2. Step 2: Identify what is accessed in each iteration

    Each iteration gives one key from the dictionary, not values or pairs.
  3. Final Answer:

    Iterates over the keys of the dictionary -> Option A
  4. Quick Check:

    for key in dict = keys [OK]
Hint: for key in dict loops over keys only [OK]
Common Mistakes:
  • Thinking it loops over values
  • Confusing keys with key-value pairs
  • Assuming it raises an error
2. Which of the following is the correct syntax to iterate over keys and values in a dictionary my_dict?
easy
A. for key, value in my_dict.keys():
B. for key, value in my_dict:
C. for key in my_dict.values():
D. for key, value in my_dict.items():

Solution

  1. Step 1: Recall dictionary methods for iteration

    To get keys and values, use my_dict.items() which returns key-value pairs.
  2. Step 2: Check syntax correctness

    Only for key, value in my_dict.items(): correctly unpacks keys and values.
  3. Final Answer:

    for key, value in my_dict.items(): -> Option D
  4. Quick Check:

    Use dict.items() for keys and values [OK]
Hint: Use dict.items() to get keys and values together [OK]
Common Mistakes:
  • Using my_dict without .items() for key-value pairs
  • Trying to unpack keys() or values() which return single elements
  • Syntax errors from missing .items()
3. What is the output of this code?
my_dict = {'a': 1, 'b': 2}
for k, v in my_dict.items():
    print(k, v)
medium
A. a 1\nb 2
B. ('a', 1)\n('b', 2)
C. a\nb
D. 1\n2

Solution

  1. Step 1: Understand the loop over items()

    The loop unpacks each key-value pair from my_dict.items().
  2. Step 2: Analyze the print statement

    It prints the key and value separated by space on each line, so output lines are "a 1" and "b 2".
  3. Final Answer:

    a 1\nb 2 -> Option A
  4. Quick Check:

    print(k, v) prints key and value separated by space [OK]
Hint: print(k, v) shows key and value separated by space [OK]
Common Mistakes:
  • Expecting tuples printed instead of separate values
  • Printing only keys or only values
  • Confusing output format with list or tuple
4. Find the error in this code:
my_dict = {'x': 10, 'y': 20}
for key, value in my_dict:
    print(key, value)
medium
A. Dictionary keys cannot be unpacked
B. Incorrect print statement syntax
C. Missing .items() after my_dict
D. No error, code runs fine

Solution

  1. Step 1: Identify the iteration target

    The loop tries to unpack two variables from my_dict directly, which yields only keys.
  2. Step 2: Correct the iteration method

    To unpack key and value, use my_dict.items() instead of just my_dict.
  3. Final Answer:

    Missing .items() after my_dict -> Option C
  4. Quick Check:

    Use my_dict.items() to unpack key, value [OK]
Hint: Use .items() to unpack key and value in loop [OK]
Common Mistakes:
  • Trying to unpack keys only without .items()
  • Assuming dict directly yields key-value pairs
  • Ignoring error message about unpacking
5. Given the dictionary data = {'a': 0, 'b': 2, 'c': 0, 'd': 4}, which code snippet creates a new dictionary with only keys having non-zero values?
hard
A. new_dict = {k: v for k, v in data if v != 0}
B. new_dict = {k: v for k, v in data.items() if v != 0}
C. new_dict = {k: v for k in data.keys() if data[k] != 0}
D. new_dict = {k: v for v, k in data.items() if v != 0}

Solution

  1. Step 1: Understand dictionary comprehension with condition

    We want to keep only items where value is not zero, so use if v != 0 in comprehension.
  2. Step 2: Check correct unpacking and syntax

    new_dict = {k: v for k, v in data.items() if v != 0} correctly unpacks key and value from data.items() and filters by value.
  3. Final Answer:

    new_dict = {k: v for k, v in data.items() if v != 0} -> Option B
  4. Quick Check:

    Use dict.items() and filter with if condition [OK]
Hint: Use dict.items() with if condition in comprehension [OK]
Common Mistakes:
  • Forgetting .items() when unpacking key and value
  • Swapping key and value in unpacking
  • Using keys() without accessing values