Bird
Raised Fist0
Pythonprogramming~5 mins

Basic list comprehension syntax in Python - Cheat Sheet & Quick Revision

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
Recall & Review
beginner
What is list comprehension in Python?
List comprehension is a concise way to create lists by writing a single expression inside square brackets, often replacing loops and append calls.
Click to reveal answer
beginner
Write the basic syntax of a list comprehension.
The basic syntax is:
[expression for item in iterable]
where expression is the value to add, item is each element from iterable.
Click to reveal answer
beginner
How does list comprehension compare to a for-loop for creating a list?
List comprehension is shorter and often easier to read. It combines the loop and list creation in one line, unlike a for-loop which needs multiple lines and an append call.
Click to reveal answer
beginner
Example: What does this list comprehension do?
[x * 2 for x in range(3)]
It creates a list by multiplying each number from 0 to 2 by 2. The result is [0, 2, 4].
Click to reveal answer
beginner
Can list comprehensions include conditions?
Yes, but that is a more advanced topic. The basic syntax does not include conditions. Conditions are added with an if clause inside the comprehension.
Click to reveal answer
What is the output of this code?
[x + 1 for x in [1, 2, 3]]
A[2, 3, 4]
B[1, 2, 3]
C[0, 1, 2]
D[1, 3, 5]
Which part of a list comprehension is the 'iterable'?
AThe expression before 'for'
BThe variable after 'for'
CThe brackets []
DThe sequence after 'in'
What does this list comprehension do?
[x for x in range(5)]
ACreates a list of 5 zeros
BCreates a list of numbers 1 to 5
CCreates a list of numbers 0 to 4
DCreates an empty list
Which of these is a valid list comprehension?
Afor x in [1, 2, 3]: x * 2
B[x * 2 for x in [1, 2, 3]]
C[x * 2 in [1, 2, 3]]
Dx * 2 for x in [1, 2, 3]
What type of value does a list comprehension produce?
AA list
BA string
CAn integer
DA dictionary
Explain the basic syntax of a list comprehension and how it works.
Think about how you write a for-loop and how list comprehension shortens it.
You got /6 concepts.
    Give an example of a simple list comprehension that doubles numbers from 0 to 4.
    Use range and multiply each item by 2 inside the comprehension.
    You got /5 concepts.

      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