Bird
Raised Fist0
Pythonprogramming~15 mins

Basic list comprehension syntax 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
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

  1. 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.
  2. 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].
  3. Final Answer:

    Creates a list of numbers doubled from 0 to 2 -> Option C
  4. 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

  1. 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).
  2. 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.
  3. Final Answer:

    [x**2 for x in range(5)] -> Option D
  4. 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

  1. 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.
  2. Step 2: Calculate squares of selected numbers

    Squares of 2 and 4 are 4 and 16, so the list squares is [4, 16].
  3. Final Answer:

    [4, 16] -> Option A
  4. 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

  1. 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.
  2. Step 2: Identify the error

    Because the variable is missing, Python will raise a syntax error.
  3. Final Answer:

    Missing variable name after 'for' -> Option A
  4. 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

  1. Step 1: Understand the filtering condition

    We want only words with length greater than 3, so use 'if len(w) > 3' to filter.
  2. 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].
  3. Final Answer:

    [len(w) for w in words if len(w) > 3] -> Option B
  4. Quick Check:

    Filter words by length, then get lengths [OK]
Hint: Filter first, then apply len() in comprehension [OK]
Common Mistakes:
  • Returning words instead of lengths
  • Using len(words) instead of len(w)
  • Returning boolean instead of lengths