List comprehensions provide a concise way to create lists: [expression for item in iterable if condition].
Basic: squares = [x**2 for x in range(10)]. Filtering: evens = [x for x in range(20) if x % 2 == 0]. Nested: pairs = [(x, y) for x in range(3) for y in range(3)].
Dictionary comprehensions: {k: v for k, v in items if v > 0}. Set comprehensions: {x % 3 for x in range(100)}. Generator expressions: sum(x**2 for x in range(1000000)).
Advanced patterns: conditional expressions [x if x > 0 else 0 for x in data], walrus operator [y for x in data if (y := process(x)) > threshold], and flattening [item for sublist in nested for item in sublist].
Use comprehensions when the logic is simple. If the expression spans multiple lines, a regular for loop is more readable.