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 list comprehension is used
๐ Scenario: Imagine you have a list of numbers and you want to create a new list with each number doubled. Doing this one by one can take many lines of code. List comprehension helps you do this quickly and clearly.
๐ฏ Goal: Learn how to use list comprehension to create a new list by doubling each number from an existing list.
๐ What You'll Learn
Create a list called numbers with the values 1, 2, 3, 4, 5
Create a new list called doubled using list comprehension to double each number in numbers
Print the doubled list
๐ก Why This Matters
๐ Real World
List comprehension is used in data processing, like quickly transforming lists of data without writing long loops.
๐ผ Career
Knowing list comprehension helps you write clean and efficient code, a skill valued in programming jobs.
Progress0 / 4 steps
1
Create the initial list of numbers
Create a list called numbers with these exact values: 1, 2, 3, 4, 5
Python
Hint
Use square brackets [] to create a list and separate numbers with commas.
2
Prepare to create the doubled list
Create an empty list called doubled to hold the doubled numbers
Python
Hint
Use [] to create an empty list.
3
Use list comprehension to double each number
Use list comprehension to create a new list called doubled that contains each number in numbers multiplied by 2
Python
Hint
Use the format [expression for item in list] to create the new list.
4
Print the doubled list
Print the list doubled to see the result
Python
Hint
Use print(doubled) to show the list.
Practice
(1/5)
1. Why do programmers use list comprehension in Python?
easy
A. To make code run slower
B. To write longer code for better understanding
C. To avoid using loops completely
D. To create lists in a shorter and clearer way
Solution
Step 1: Understand the purpose of list comprehension
List comprehension is designed to make list creation concise and readable.
Step 2: Compare options with this purpose
Only To create lists in a shorter and clearer way says it helps create lists shorter and clearer, which matches the purpose.
Final Answer:
To create lists in a shorter and clearer way -> Option D
Quick Check:
List comprehension = shorter, clearer list creation [OK]
Hint: List comprehension makes list creation short and clear [OK]
Common Mistakes:
Thinking it avoids loops completely
Believing it makes code slower
Assuming it makes code longer
2. Which of the following is the correct syntax for a simple list comprehension that squares numbers from 1 to 3?
easy
A. [for x in range(1, 4) x**2]
B. [x**2 for x in range(1, 4)]
C. [x**2 in range(1, 4)]
D. for x in range(1, 4): x**2
Solution
Step 1: Recall list comprehension syntax
The correct syntax is: [expression for variable in iterable]
Step 2: Check each option
[x**2 for x in range(1, 4)] matches the correct syntax; others have syntax errors or missing brackets.
Final Answer:
[x**2 for x in range(1, 4)] -> Option B
Quick Check:
Correct syntax = [x**2 for x in range(1, 4)] [OK]
Hint: Remember: [expression for variable in iterable] [OK]
Common Mistakes:
Placing 'for' after the expression
Missing brackets around comprehension
Using colon instead of brackets
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. [2, 4]
C. [1, 4, 9, 16]
D. [1, 9]
Solution
Step 1: Identify the list and condition
The list is nums = [1, 2, 3, 4]. The comprehension squares numbers only if they are even (n % 2 == 0).
Step 2: Calculate squares of even numbers
Even numbers are 2 and 4. Their squares are 4 and 16.
Final Answer:
[4, 16] -> Option A
Quick Check:
Squares of even nums = [4, 16] [OK]
Hint: Filter first, then apply expression in comprehension [OK]
Common Mistakes:
Including odd numbers by mistake
Returning original numbers instead of squares
Confusing condition placement
4. Find the error in this list comprehension:
result = [x*2 for x in range(5) if x > 2 else x]
medium
A. Using * instead of ** for power
B. Missing brackets around the expression
C. The else clause is not allowed in this position
D. range(5) should be range(1,5)
Solution
Step 1: Understand list comprehension with condition
When using if-else inside list comprehension, it must be part of the expression, not after the for loop.
Step 2: Identify the syntax error
The else clause after the if in the comprehension is invalid syntax here; it should be inside the expression part.
Final Answer:
The else clause is not allowed in this position -> Option C
Quick Check:
if-else must be inside expression, not after for [OK]
Hint: if-else goes inside expression, not after for [OK]
Common Mistakes:
Placing else after the for loop
Confusing * with ** for multiplication
Changing range unnecessarily
5. You have a list of words: words = ['apple', '', 'banana', ' ', 'cherry']. Using list comprehension, how can you create a new list that contains only non-empty and non-blank words?
hard
A. [word for word in words if word.strip()]
B. [word for word in words if word]
C. [word for word in words if word != '']
D. [word for word in words if len(word) > 1]
Solution
Step 1: Understand the filtering requirement
We want to exclude empty strings and strings with only spaces (blank).
Step 2: Analyze each option's filter
[word for word in words if word] excludes empty strings but keeps strings with spaces. [word for word in words if word != ''] excludes empty strings only. [word for word in words if word.strip()] uses strip() to remove spaces and checks if anything remains, filtering out blanks. [word for word in words if len(word) > 1] excludes words of length 1 or less, which wrongly excludes single-letter words.
Final Answer:
[word for word in words if word.strip()] -> Option A
Quick Check:
Use strip() to remove blanks before filtering [OK]
Hint: Use word.strip() to filter out blanks and empty strings [OK]
Common Mistakes:
Only checking if word is non-empty, missing blanks