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
Why dictionary comprehension is used
๐ Scenario: Imagine you have a list of fruits with their prices, and you want to create a new dictionary that only includes fruits costing less than $2. Instead of writing many lines of code, dictionary comprehension helps you do this quickly and clearly.
๐ฏ Goal: Build a small program that uses dictionary comprehension to filter fruits by price, showing how dictionary comprehension makes the code simple and easy to read.
๐ What You'll Learn
Create a dictionary called fruits with exact entries: 'apple': 1.5, 'banana': 0.8, 'cherry': 2.5, 'date': 3.0, 'elderberry': 1.2
Create a variable called max_price and set it to 2
Use dictionary comprehension with fruit and price to create a new dictionary called affordable_fruits that includes only fruits with price less than max_price
Print the affordable_fruits dictionary
๐ก Why This Matters
๐ Real World
Filtering and transforming data quickly is common in real-world programs, like showing only affordable products in a store.
๐ผ Career
Knowing dictionary comprehension helps you write clean, efficient code, a skill valued in many programming jobs.
Progress0 / 4 steps
1
Create the initial dictionary of fruits and prices
Create a dictionary called fruits with these exact entries: 'apple': 1.5, 'banana': 0.8, 'cherry': 2.5, 'date': 3.0, 'elderberry': 1.2
Python
Hint
Use curly braces {} to create the dictionary and separate each fruit-price pair with commas.
2
Set the maximum price to filter fruits
Create a variable called max_price and set it to 2
Python
Hint
Just write max_price = 2 on a new line.
3
Use dictionary comprehension to filter affordable fruits
Use dictionary comprehension with variables fruit and price to create a new dictionary called affordable_fruits that includes only fruits with price less than max_price
Python
Hint
Use the format {key: value for key, value in dictionary.items() if condition} to filter.
4
Print the filtered dictionary
Write print(affordable_fruits) to display the dictionary of fruits with price less than max_price
Python
Hint
Use print(affordable_fruits) to show the result.
Practice
(1/5)
1. Why do programmers use dictionary comprehension in Python?
easy
A. To avoid using loops completely
B. To create dictionaries quickly and in a single line
Dictionary comprehension is designed to create dictionaries quickly and concisely in one line.
Step 2: Compare options with this purpose
To create dictionaries quickly and in a single line matches this purpose, while others are incorrect or unrelated.
Final Answer:
To create dictionaries quickly and in a single line -> Option B
Quick Check:
Dictionary comprehension = fast dictionary creation [OK]
Hint: Dictionary comprehension makes dicts fast and short [OK]
Common Mistakes:
Thinking it creates lists
Believing it avoids loops entirely
Assuming it makes code longer
2. Which of the following is the correct syntax for a dictionary comprehension?
easy
A. {key: value for key, value in iterable}
B. [key: value for key, value in iterable]
C. (key: value for key, value in iterable)
D. {key, value for key, value in iterable}
Solution
Step 1: Recall dictionary comprehension syntax
Dictionary comprehension uses curly braces with key:value pairs and a for loop inside.
Step 2: Match syntax to options
{key: value for key, value in iterable} uses curly braces and correct key:value format; others use wrong brackets or separators.
Final Answer:
{key: value for key, value in iterable} -> Option A
Quick Check:
Dict comprehension syntax = curly braces with key:value [OK]
Hint: Use curly braces and colon for dict comprehension [OK]
Common Mistakes:
Using square brackets instead of curly braces
Using parentheses which create generators
Separating key and value with commas
3. What is the output of this code?
nums = [1, 2, 3]
squares = {n: n**2 for n in nums if n > 1}
print(squares)
medium
A. {1: 1}
B. {1: 1, 2: 4, 3: 9}
C. {2: 4, 3: 9}
D. {}
Solution
Step 1: Understand the dictionary comprehension with condition
The comprehension includes only numbers greater than 1, so 2 and 3 are included.
Step 2: Calculate squares for included numbers
2 squared is 4, 3 squared is 9, so the dictionary is {2: 4, 3: 9}.
Final Answer:
{2: 4, 3: 9} -> Option C
Quick Check:
Filter n > 1, squares = {2:4, 3:9} [OK]
Hint: Filter condition removes keys not matching [OK]
Common Mistakes:
Including all numbers ignoring the condition
Confusing keys and values
Expecting an empty dictionary
4. Find the error in this dictionary comprehension:
data = [1, 2, 3]
result = {x, x*2 for x in data}
medium
A. Using comma instead of colon between key and value
B. Missing parentheses around the comprehension
C. Using square brackets instead of curly braces
D. No error, code is correct
Solution
Step 1: Check key-value separator in comprehension
Dictionary comprehension requires colon ':' between key and value, not comma.
Step 2: Identify the error in given code
The code uses comma, which is invalid syntax for dict comprehension.
Final Answer:
Using comma instead of colon between key and value -> Option A
Quick Check:
Dict comprehension needs ':' not ',' [OK]
Hint: Use colon ':' between key and value [OK]
Common Mistakes:
Using comma instead of colon
Confusing list/set comprehension syntax
Assuming code runs without error
5. You have a list of words: words = ['apple', 'banana', '', 'cherry', None]. How can you use dictionary comprehension to create a dictionary with words as keys and their lengths as values, but only include non-empty and non-None words?
hard
A. {w: len(w) for w in words}
B. {w: len(w) for w in words if w != '' or w is not None}
C. {w: len(w) for w in words if w == '' and w is None}
D. {w: len(w) for w in words if w}
Solution
Step 1: Understand filtering condition for valid words
We want to exclude empty strings and None, which are falsy values in Python.
Step 2: Use condition that keeps only truthy words
Using if w filters out empty strings and None automatically.