Курс Python → Генераторы в Python
Генераторы в Python — это функции, которые используют ключевое слово `yield` вместо `return`. Когда функция с `yield` вызывается, она возвращает объект-генератор, который можно итерировать по одному значению за раз. При каждой итерации генератор запоминает свое состояние, чтобы продолжить выполнение с того же места. Это позволяет экономить память и увеличивает производительность при работе с большими объемами данных.
Пример создания простого генератора:
def my_generator():
for i in range(5):
yield i
gen = my_generator()
for val in gen:
print(val)
В этом примере функция `my_generator` возвращает генератор, который поочередно выдает числа от 0 до 4. При каждой итерации цикла `for` будет выводиться следующее значение, не храня все значения в памяти одновременно.
Генераторы также могут быть бесконечными, если они используют цикл `while` или рекурсию. Они позволяют эффективно обрабатывать потенциально бесконечные последовательности данных, такие как потоки сетевых пакетов или событий.
Помимо создания собственных генераторов, в Python есть встроенные функции, которые возвращают генераторы. Например, функция `range()` возвращает ленивую последовательность чисел, что позволяет эффективно работать с большими диапазонами значений без необходимости хранить их все в памяти.
Использование генераторов в Python помогает сделать код более читаемым, компактным и эффективным. Они позволяют работать с данными по требованию, что особенно важно при обработке больших объемов информации или при работе с потенциально бесконечными последовательностями.
Другие уроки курса "Python"
- Открытие и редактирование скриптов Python
- Глобальные переменные в Python
- Метод setdefault() в Python
- Команда %dhist — список посещенных каталогов
- Создание списка через цикл
- Методы и функции в Python
- Принципы программирования
- Округление банкира в Python
- Создание списка через итерацию
- Сериализация объектов в Python
- Генератор списка с условием if
- Преобразование в float
- Очистка данных с помощью pandas
- Логические значения в Python
- Блок else в обработке исключений
- Логирование в Python
- Различия символов в Python
- Работа с аргументами командной строки в Python
- globals и locals
- Округление чисел с помощью round
- Декоратор total_ordering для сравнения объектов
- Сравнение def и lambda-функций
- Хранение данных
- Изменение элемента списка
- Основные функции и модули Python
- Раздувающийся словарь в Python
- Python enumerate() функции
- Отношения подклассов в Python
- Списки в Python
- Работа с буфером обмена на Python
- Оператор «моржа» (Walrus Operator)
- Копирование объектов в Python
- Декораторы для регистрации функций
- Удаление дубликатов в pandas
- Конвертация текстовых чисел с помощью Numerizer
- Логирование с Loguru
- Работа со словарями в Python
- Установка библиотек в Python
- Руководство по Pymorphy2
- Обработка ошибок в Python
- Работа со случайными элементами
- Множественное назначение в Python
- Мониторинг памяти с Pympler
- Импорт модулей в Python 3.12
- Избегание циклических зависимостей классов в Python















