Python List Comprehension – Compact, Pythonic, and Powerful
Introduction – What Is List Comprehension?
List comprehension is a concise and readable way to create new lists from existing iterables (like ranges, lists, or strings). It replaces verbose for loop constructions with one-liner expressions that are often more efficient and Pythonic.
List comprehensions are ideal for mapping, filtering, and transforming data—core tasks in Python development, data science, and web apps.
In this guide, you’ll learn:
- The syntax and structure of list comprehensions
- How to use conditions in comprehensions
- Nested comprehensions for 2D data
- Best practices and performance tips
Basic List Comprehension Syntax
new_list = [expression for item in iterable]
Explanation:
expressionis the value to include in the list.itemis a variable representing each element fromiterable.
Example 1: Square Numbers
squares = [x**2 for x in range(5)]
print(squares)
Explanation:
- Iterates over
xfrom0to4. - Computes
x**2(square) for each value. - Output:
[0, 1, 4, 9, 16]
Example 2: Filter Even Numbers
evens = [x for x in range(10) if x % 2 == 0]
print(evens)
Explanation:
- Loops through numbers from
0to9. - Includes only numbers divisible by 2 (
x % 2 == 0). - Output:
[0, 2, 4, 6, 8]
Example 3: Convert to Uppercase
words = ["apple", "banana", "cherry"]
upper_words = [word.upper() for word in words]
print(upper_words)
Explanation:
- Iterates over
wordinwords. - Converts each word to uppercase using
.upper(). - Output:
['APPLE', 'BANANA', 'CHERRY']
Example 4: Nested List Comprehension (2D Lists)
matrix = [[1, 2], [3, 4], [5, 6]]
flattened = [num for row in matrix for num in row]
print(flattened)
Explanation:
- Loops through each
rowinmatrix, then eachnumin thatrow. - Collects all numbers into a single flat list.
- Output:
[1, 2, 3, 4, 5, 6]
Example 5: Conditional Expression (if–else)
labels = ["even" if x % 2 == 0 else "odd" for x in range(5)]
print(labels)
Explanation:
- Uses inline
if–elseto assign"even"or"odd"to each value. - Output:
['even', 'odd', 'even', 'odd', 'even']
When Not to Use List Comprehensions
Avoid list comprehensions when:
- The logic is too complex (e.g., nested conditions or multiple function calls).
- You’re performing operations that don’t return values (like logging or file writing).
- The code becomes unreadable—clarity is more important than brevity.
Best Practices
- Keep it readable: use simple expressions and conditions.
- Avoid deeply nested comprehensions—prefer regular loops for clarity.
- Use list comprehensions for filtering, transformation, and mapping.
- Pair with functions like
.upper(),.strip(), or math operations for transformations.
Summary – Recap & Next Steps
List comprehensions are elegant and efficient tools for transforming and filtering data. They help you replace loops with compact, readable code, making your Python scripts cleaner and faster.
Key Takeaways:
- Basic syntax:
[expression for item in iterable] - Add filtering with
ifand mapping with functions likeupper() - Use inline
if–elsefor condition-based expressions - Nest comprehensions carefully for multi-dimensional lists
Real-World Relevance:
Used in data pipelines, API response parsing, matrix transformations, and text processing, list comprehensions make Python code cleaner and more expressive.
FAQ Section – Python List Comprehension
What is a list comprehension in Python?
It’s a compact way to create lists using a for loop inside square brackets:
[x**2 for x in range(5)]
Can I use an if statement in list comprehensions?
Yes. You can filter items using if:
[x for x in range(10) if x % 2 == 0]
How do I use if–else in a list comprehension?
Place the condition before the for:
["even" if x % 2 == 0 else "odd" for x in range(5)]
Are list comprehensions faster than loops?
Usually yes. They are optimized and run faster than equivalent for loops in most cases.
Can I use nested loops in list comprehensions?
Yes. Example for flattening 2D lists:
[num for row in matrix for num in row]
Share Now :
