Коротко
List comprehension — компактный способ построить список из итерируемого:
squares = [x * x for x in range(10) if x % 2 == 0]
Есть также dict/set comprehensions и generator expression (x for x in ...).
Зачем спрашивают
Смотрят idiomatic Python и понимание, когда comprehension уместен, а когда лучше обычный цикл (сложная логика, side effects).
Короткий ответ
«Это синтаксис создания списка в одну строку: выражение + цикл + опциональный фильтр. Для ленивых последовательностей — generator expression.»