В Python существуют следующие списковые генераторы (list comprehensions):
С базовым синтаксисом: [выражение for элемент in итерируемый_объект]
Применяет выражение к каждому элементу в итерируемый_объект.
С условием фильтрации: [выражение for элемент in итерируемый_объект if условие]
Включает в список только те элементы, для которых условие истинно.
С вложенными циклами: [выражение for элемент1 in итер1 for элемент2 in итер2 ...]
Аналогично вложенным циклам for.
Примеры:
python
python
python
Помимо списковых генераторов (list comprehensions), существуют аналогичные генераторы для других структур данных:
{ключ: значение for элемент in итерируемый_объект ...}{выражение for элемент in итерируемый_объект ...}(выражение for элемент in итерируемый_объект ...) - важное отличие: возвращают итератор, а не весь список сразу, что экономит память для больших последовательностей.