Python Docs
Comprehensions (List, Dict, Set, Generator)
Comprehensions provide concise syntax for transforming and filtering iterables. They are often faster and cleaner than equivalent for loops.
List Comprehensions
squares = [x*x for x in range(6)] # [0,1,4,9,16,25] evens = [x for x in range(10) if x % 2 == 0] pairs = [(i, j) for i in range(2) for j in range(3)]
Dict Comprehensions
names = ['alice','bob','charlie']
lengths = {name: len(name) for name in names}
swapped = {v: k for k, v in {'a':1, 'b':2}.items()}Set Comprehensions
mods = {x % 3 for x in range(10)} # {0,1,2}
unique_letters = {ch for ch in 'banana'} # {'b','a','n'}Generator Comprehensions
gen = (x*x for x in range(1_000_000)) first = next(gen) # 1 # Lazy: does not create full list in memory
Conditional Logic
labels = ['even' if x % 2 == 0 else 'odd' for x in range(5)] filtered = [x*x for x in range(10) if x % 3 == 0]
Nested Comprehensions
matrix = [[i*j for j in range(3)] for i in range(3)] flattened = [x for row in matrix for x in row]
Best Practices
- Keep comprehensions short; complex logic belongs in loops.
- Use generator comprehensions for large sequences (memory-efficient).
- Use parentheses or line breaks for readability.