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 List Comprehension Syntax
๐ Scenario: You work in a small bakery that keeps track of daily sales in a list. You want to quickly create a new list showing the prices with tax added.
๐ฏ Goal: Build a Python program that uses list comprehension to add tax to each price in a list.
๐ What You'll Learn
Create a list of prices
Create a tax rate variable
Use list comprehension to add tax to each price
Print the new list with prices including tax
๐ก Why This Matters
๐ Real World
Adding tax or fees to prices is common in stores and online shops.
๐ผ Career
Understanding list comprehension helps you write clean, fast code for data processing tasks.
Progress0 / 4 steps
1
Create the list of prices
Create a list called prices with these exact values: 2.5, 3.0, 4.75, 1.25, 5.0
Python
Hint
Use square brackets and separate numbers with commas.
2
Create the tax rate variable
Create a variable called tax_rate and set it to 0.08 (which means 8% tax).
Python
Hint
Just assign 0.08 to tax_rate.
3
Use list comprehension to add tax
Create a new list called prices_with_tax using list comprehension. For each price in prices, calculate price * (1 + tax_rate).
Python
Hint
Use the syntax: [expression for item in list]
4
Print the new list
Write a print statement to display the prices_with_tax list.
Python
Hint
Use print(prices_with_tax) to show the list.
Practice
(1/5)
1. What does the following list comprehension do? [x * 2 for x in range(3)]
easy
A. Creates a list of numbers from 1 to 6
B. Creates a list of numbers from 0 to 3
C. Creates a list of numbers doubled from 0 to 2
D. Creates a list of numbers squared from 0 to 2
Solution
Step 1: Understand the range and loop variable
The range(3) generates numbers 0, 1, 2. The variable x takes these values one by one.
Step 2: Apply the expression to each value
Each x is multiplied by 2, so the list becomes [0*2, 1*2, 2*2] = [0, 2, 4].
Final Answer:
Creates a list of numbers doubled from 0 to 2 -> Option C
Quick Check:
List comprehension doubles each number in range(3) [OK]
Hint: Remember: for x in range(3) gives 0,1,2 only [OK]
Common Mistakes:
Thinking range(3) includes 3
Confusing doubling with squaring
Ignoring the for loop variable
2. Which of the following is the correct syntax for a list comprehension that creates a list of squares of numbers 0 to 4?
easy
A. [x**2 x in range(5)]
B. [for x in range(5) x**2]
C. [x^2 in range(5)]
D. [x**2 for x in range(5)]
Solution
Step 1: Recall list comprehension syntax
The correct syntax is [expression for variable in iterable]. Here, expression is x**2 and iterable is range(5).
Step 2: Check each option
[x**2 for x in range(5)] matches the correct syntax. Options A, B, and C have syntax errors or wrong order.
Final Answer:
[x**2 for x in range(5)] -> Option D
Quick Check:
Correct syntax is [expr for var in iterable] [OK]
Hint: Remember: list comprehension = [expression for variable in iterable] [OK]
Common Mistakes:
Placing 'for' after expression
Using ^ instead of ** for power
Missing 'in' keyword
3. What is the output of this code?
nums = [1, 2, 3, 4]
squares = [n*n for n in nums if n % 2 == 0]
print(squares)
medium
A. [4, 16]
B. [1, 4, 9, 16]
C. [2, 4]
D. [1, 9]
Solution
Step 1: Understand the list and condition
The list nums is [1, 2, 3, 4]. The condition 'if n % 2 == 0' selects even numbers: 2 and 4.
Step 2: Calculate squares of selected numbers
Squares of 2 and 4 are 4 and 16, so the list squares is [4, 16].
Final Answer:
[4, 16] -> Option A
Quick Check:
Filter even numbers, then square them [OK]
Hint: Filter first, then apply expression in list comprehension [OK]
Common Mistakes:
Including odd numbers by mistake
Confusing values with their squares
Ignoring the if condition
4. Find the error in this list comprehension:
result = [x + 1 for in range(5)]
medium
A. Missing variable name after 'for'
B. Using + instead of *
C. range(5) should be range(1,5)
D. List comprehension cannot use range
Solution
Step 1: Check the for loop syntax inside comprehension
The syntax requires a variable name after 'for', like 'for x in range(5)'. Here, 'x' is missing.
Step 2: Identify the error
Because the variable is missing, Python will raise a syntax error.
Final Answer:
Missing variable name after 'for' -> Option A
Quick Check:
for loop needs variable name [OK]
Hint: Always include variable after 'for' in comprehension [OK]
Common Mistakes:
Omitting the loop variable
Misplacing 'in' keyword
Thinking range needs to start at 1
5. You have a list of words: words = ['apple', 'bee', 'cat', 'dog', 'elephant']. Using list comprehension, how do you create a list of the lengths of words that have more than 3 letters?
hard
A. [w for w in words if len(w) > 3]
B. [len(w) for w in words if len(w) > 3]
C. [len(words) for w in words if len(w) > 3]
D. [len(w) > 3 for w in words]
Solution
Step 1: Understand the filtering condition
We want only words with length greater than 3, so use 'if len(w) > 3' to filter.
Step 2: Create list of lengths
For each filtered word, get its length with len(w). So the comprehension is [len(w) for w in words if len(w) > 3].
Final Answer:
[len(w) for w in words if len(w) > 3] -> Option B
Quick Check:
Filter words by length, then get lengths [OK]
Hint: Filter first, then apply len() in comprehension [OK]