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
Basic dictionary comprehension
๐ Scenario: You work in a small bookstore. You have a list of books with their prices. You want to create a new dictionary that shows the prices after a discount.
๐ฏ Goal: Create a dictionary using dictionary comprehension to apply a discount to each book price.
๐ What You'll Learn
Create a dictionary called books with given book titles and prices.
Create a variable called discount to hold the discount rate.
Use dictionary comprehension to create a new dictionary called discounted_books with discounted prices.
Print the discounted_books dictionary.
๐ก Why This Matters
๐ Real World
Applying discounts to product prices is common in stores and online shops.
๐ผ Career
Understanding dictionary comprehension helps in data processing and automation tasks in many programming jobs.
Progress0 / 4 steps
1
Create the initial dictionary of books
Create a dictionary called books with these exact entries: 'Python Basics': 40, 'Data Science': 50, 'Machine Learning': 60
Python
Hint
Use curly braces {} to create a dictionary with keys and values separated by colons.
2
Set the discount rate
Create a variable called discount and set it to 0.1 to represent a 10% discount
Python
Hint
Just assign the number 0.1 to the variable discount.
3
Create discounted prices with dictionary comprehension
Use dictionary comprehension to create a new dictionary called discounted_books where each price is reduced by the discount. Use for title, price in books.items() in the comprehension
Python
Hint
Use the format {key: value_expression for key, value in dictionary.items()}.
4
Print the discounted books dictionary
Write print(discounted_books) to display the dictionary with discounted prices
Python
Hint
Use the print function to show the dictionary.
Practice
(1/5)
1. What does the following dictionary comprehension do? {x: x*x for x in range(3)}
easy
A. Creates a list of squares from 0 to 2
B. Creates a set of squares from 0 to 2
C. Creates a dictionary with numbers 0 to 2 as keys and their squares as values
D. Creates a dictionary with keys as squares and values as numbers
Solution
Step 1: Understand the loop and key-value pairs
The comprehension loops over numbers 0, 1, 2 and uses each number as the key.
Step 2: Calculate the value for each key
Each value is the square of the key (x*x), so values are 0, 1, 4 respectively.
Final Answer:
Creates a dictionary with numbers 0 to 2 as keys and their squares as values -> Option C
Hint: Remember dictionary comprehension uses curly braces and colon [OK]
Common Mistakes:
Using square brackets instead of curly braces
Using arrow (=>) instead of colon for key-value
Using parentheses which create generator expressions
3. What is the output of this code?
nums = [1, 2, 3]
squares = {n: n**2 for n in nums if n % 2 != 0}
print(squares)
medium
A. {1: 1, 3: 9}
B. {2: 4}
C. {1: 1, 2: 4, 3: 9}
D. {}
Solution
Step 1: Understand the filtering condition
The comprehension includes only numbers where n % 2 != 0, meaning odd numbers only (1 and 3).
Step 2: Calculate squares for filtered numbers
Squares are 1*1=1 and 3*3=9, so dictionary is {1:1, 3:9}.
Final Answer:
{1: 1, 3: 9} -> Option A
Quick Check:
Filter odd numbers and square them = {1:1, 3:9} [OK]
Hint: Check the if condition filters keys before squaring [OK]
Common Mistakes:
Including even numbers by mistake
Confusing list comprehension output with dictionary
Ignoring the if condition in comprehension
4. Find the error in this dictionary comprehension:
result = {x, x*2 for x in range(3)}
medium
A. Missing colon between key and value
B. Using parentheses instead of curly braces
C. Range function is incorrect
D. No error, code is correct
Solution
Step 1: Check syntax for key-value pairs
Dictionary comprehension requires a colon ':' between key and value, but here a comma ',' is used.
Step 2: Confirm other parts are correct
Curly braces and range(3) are correct, so the error is the missing colon.
Final Answer:
Missing colon between key and value -> Option A
Quick Check:
Key:value pairs need colon, not comma [OK]
Hint: Use colon ':' to separate key and value in dict comprehension [OK]
Common Mistakes:
Using comma instead of colon between key and value
Confusing set comprehension with dictionary comprehension
Using wrong brackets for comprehension
5. Given a list of words, create a dictionary comprehension that maps each word to its length but only include words longer than 3 letters. Which code correctly does this?
words = ['cat', 'house', 'dog', 'elephant']
hard
A. {word: len(word) for word in words where len(word) > 3}
B. {word: len(word) for word in words if word > 3}
C. {word: len(word) if len(word) > 3 for word in words}
D. {word: len(word) for word in words if len(word) > 3}
Solution
Step 1: Understand filtering condition syntax
The if condition must come after the for loop to filter words by length correctly.
Step 2: Check each option's syntax
{word: len(word) for word in words if len(word) > 3} correctly places 'if len(word) > 3' after the for loop. Others have syntax errors or wrong condition placement.
Final Answer:
{word: len(word) for word in words if len(word) > 3} -> Option D
Quick Check:
Filter after for loop with if condition [OK]
Hint: Put if condition after for loop in dictionary comprehension [OK]