List comprehension — компактный способ создать список на основе другого. Вместо цикла с append можно написать одну строку.
Обычный способ:
squares = [] for x in range(5): squares.append(x * x)
То же через comprehension: squares = [x * x for x in range(5)] → [0, 1, 4, 9, 16]. Читается как «возьми x*x для каждого x из range(5)».
Можно добавить условие-фильтр: evens = [x for x in range(10) if x % 2 == 0] → [0, 2, 4, 6, 8] (только чётные). Comprehension делает код короче и часто понятнее, но не злоупотребляйте им: если логика сложная, обычный цикл читается лучше.