Генераторы списков собирают результаты применения произвольного выражения к элементам последовательности и возвращают их в виде нового списка. Синтаксически генераторы списков заключаются в квадратные скобки (чтобы показать, что они конструируют списки).
Пример
>> [x ** 2 for x in range(10)]
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81][x for x in range(5) if x % 2 == 0]
В общем виде генераторы списков выглядят следую-
щим образом:
[ expression for target1 in sequence1 [if condition]
for target2 in sequence2 [if condition] …
for targetN in sequenceN [if condition] ]
Пример
>>> res = [x + y for x in [0, 1, 2] for y in [100, 200, 300]]
>>> res
[100, 200, 300, 101, 201, 301, 102, 202, 302]