Генераторное выражение — это краткий способ создания генератора. Оно схоже со списковым включением, но вместо создания полного списка в памяти, оно возвращает итератор, который генерирует элементы по мере необходимости.
Преимущества:
Синтаксис:
python
Пример:
python
Сравнение с функции-генератором:
Функции-генераторы создаются с помощью ключевого слова yield. Они более гибки и могут иметь более сложную логику, включая сохранение состояния между вызовами.
python
Сравнение с списковым включением:
Списковое включение создает и возвращает полный список.
python
Таблица различий:
| Особенность | Генераторное выражение | Списковое включение |
|---|---|---|
| Создаваемый объект | Генератор (итератор) | Список |
| Память | Экономит | Использует много |
| Вычисление | Ленивое | Энергичное (сразу) |
| Синтаксис | Краткий | Краткий |
Использование yield | Нет | Нет |
Генераторные выражения часто используются в циклах for, в аргументах функций, которым нужен итератор (например, sum(), max()), или когда необходимо однократно пройти по элементам без сохранения их в памяти.