DEV Community

Cover image for Day 28/100: List Comprehensions in Python
 Rahul Gupta
Rahul Gupta

Posted on

Day 28/100: List Comprehensions in Python

Welcome to Day 28 of the 100 Days of Python series!
Today, we’re diving into one of Python’s most elegant and powerful features: List Comprehensions.

If you’ve ever written a loop just to create a list, Python has a much shorter — and cleaner — way of doing it. List comprehensions let you generate lists with less code and more readability.


🎯 What You'll Learn

  • What list comprehensions are
  • Basic syntax and examples
  • How to add conditions (if/else)
  • Nested list comprehensions
  • Real-world use cases

🧱 What is a List Comprehension?

A list comprehension is a concise way to create lists using a single line of code.

🔹 Basic Syntax:

[expression for item in iterable]
Enter fullscreen mode Exit fullscreen mode

This is equivalent to:

result = []
for item in iterable:
    result.append(expression)
Enter fullscreen mode Exit fullscreen mode

🔍 Example 1: Squaring Numbers

✅ With loop:

squares = []
for i in range(5):
    squares.append(i ** 2)
Enter fullscreen mode Exit fullscreen mode

✅ With list comprehension:

squares = [i ** 2 for i in range(5)]
Enter fullscreen mode Exit fullscreen mode

🔍 Example 2: Convert Strings to Uppercase

names = ["alice", "bob", "charlie"]
upper_names = [name.upper() for name in names]
print(upper_names)  # ['ALICE', 'BOB', 'CHARLIE']
Enter fullscreen mode Exit fullscreen mode

❓ Why Use List Comprehensions?

  • ✅ Shorter and cleaner syntax
  • ✅ Faster performance
  • ✅ More readable for simple transformations

🔀 Adding Conditions

🔸 Syntax:

[expression for item in iterable if condition]
Enter fullscreen mode Exit fullscreen mode

Example: Even Numbers Only

evens = [i for i in range(10) if i % 2 == 0]
print(evens)  # [0, 2, 4, 6, 8]
Enter fullscreen mode Exit fullscreen mode

🔄 With if-else in Expression

labels = ["even" if i % 2 == 0 else "odd" for i in range(5)]
print(labels)  # ['even', 'odd', 'even', 'odd', 'even']
Enter fullscreen mode Exit fullscreen mode

🔁 Nested List Comprehensions

You can even nest comprehensions, especially useful for 2D lists or matrices.

Example: Flatten a 2D List

matrix = [[1, 2], [3, 4], [5, 6]]
flattened = [num for row in matrix for num in row]
print(flattened)  # [1, 2, 3, 4, 5, 6]
Enter fullscreen mode Exit fullscreen mode

🧪 Real-World Examples

✅ 1. Extract Digits from String

text = "Age: 24, Score: 89"
digits = [char for char in text if char.isdigit()]
print(digits)  # ['2', '4', '8', '9']
Enter fullscreen mode Exit fullscreen mode

✅ 2. Filter Valid Emails

emails = ["a@gmail.com", "b@site", "c@yahoo.com"]
valid = [email for email in emails if "@" in email and "." in email]
print(valid)  # ['a@gmail.com', 'c@yahoo.com']
Enter fullscreen mode Exit fullscreen mode

✅ 3. Remove Duplicates from List

data = [1, 2, 2, 3, 4, 4]
unique = list({x for x in data})
print(unique)  # [1, 2, 3, 4]
Enter fullscreen mode Exit fullscreen mode

🧠 Tips & Best Practices

  • 👍 Use list comprehensions for simple transformations
  • 🚫 Avoid making them too complex or nested too deeply — use loops for readability
  • 🧹 Clean and readable comprehensions can improve performance and clarity

📚 Bonus: Dictionary & Set Comprehensions

Python also supports:

🧾 Dictionary Comprehension

squares = {x: x ** 2 for x in range(5)}
# {0: 0, 1: 1, 2: 4, 3: 9, 4: 16}
Enter fullscreen mode Exit fullscreen mode

🔁 Set Comprehension

unique = {char for char in "hello"}
# {'h', 'e', 'l', 'o'}
Enter fullscreen mode Exit fullscreen mode

🧭 Recap

Today you learned:

  • What list comprehensions are
  • How to use them with conditions
  • When to use if, if-else, and nested comprehensions
  • Real-world practical examples
  • Bonus: dictionary and set comprehensions

Top comments (0)