Introduction
Ever feel like writing loops is too much effort? Well, Python has a magic trick for you: List Comprehension! It makes your code shorter, cleaner, and 100% cooler.
What is List Comprehension?
List comprehension is a fancy way to create lists in just one line of code. It’s like a loop, but faster and more elegant!
Here’s a boring way to create a list using a loop:
numbers = []
for i in range(5):
numbers.append(i * 2)
print(numbers)
Too many lines, right? Now, let’s make it exciting with list comprehension:
numbers = [i * 2 for i in range(5)]
print(numbers)
Boom! Same result, less typing, and looks way cooler!
Basic Syntax
The structure of list comprehension is:
[expression for item in iterable]
This means:
- expression → What you want to do with each item
- item → Each element from the list
- iterable → The list, range, or anything you’re looping through
Example:
squares = [x ** 2 for x in range(1, 6)]
print(squares) # [1, 4, 9, 16, 25]
Adding Conditions (If Statements)
Want to filter elements? Just add an if
condition!
even_numbers = [x for x in range(10) if x % 2 == 0]
print(even_numbers) # [0, 2, 4, 6, 8]
Only even numbers make it into the list!
Nested Loops in List Comprehension
Need double loops? No problem!
pairs = [(x, y) for x in range(3) for y in range(2)]
print(pairs)
# [(0, 0), (0, 1), (1, 0), (1, 1), (2, 0), (2, 1)]
Perfect for creating grid-like data!
List Comprehension vs Traditional Loop
Feature | List Comprehension | Traditional Loop |
---|---|---|
Code Length | Short & sweet | Long & boring |
Readability | Clean & simple | More lines, harder to read |
Performance | Slightly faster | A bit slower |
Fun Challenge
Can you create a list of uppercase vowels from a string using list comprehension?
text = "List comprehension is awesome!"
vowels = [char.upper() for char in text if char in "aeiou"]
print(vowels)
Now you’re a list comprehension master!
Summary
List comprehension is faster and cleaner than loops. It follows [expression for item in iterable]
. You can add conditions & nested loops. Use it wisely and make your code super elegant!
0 Comments