Курс 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"
- Отправка POST-запроса в REST API
- %pinfo: получение информации об объекте
- Метод split() в Python
- Таймер обратного отсчета
- Удаление знаков препинания в Python
- Метод join() для объединения строк
- Оператор «and» в Python
- Запуск асинхронной корутины
- Регулярные выражения в Python
- Регулярные выражения: метод match
- Группы исключений в Python
- Создание пользовательской коллекции в Python
- Перевод двоичного кода в целое число
- Замена символов в Python
- Переменная с нижним подчеркиванием
- Получение текущей даты и времени
- Декораторы с аргументами
- Пропуск строк в файле с itertools
- Распаковка аргументов в Python
- Комментарии в Python
- Конвертация коллекций в Python
- Генераторные функции в Python
- Оператор обр. импликации
- Работа с многоуровневыми словарями в Python
- Работа с изображениями Pillow
- Lambda Functions in Python
- Удаление дубликатов в pandas
- Перегрузка операторов в Python
- Переворот строки
- Декодирование строк в Python
- Функция eval() в Python
- Инициализация структур данных
- Многострочные комментарии в Python
- Функция zip() в Python
- Поиск всех индексов подстроки
- F-строки в Python 3.8
- Библиотека funcy: удобные утилиты
- Сравнение строк в Python
- Метод __int__ в Python
- Импортирование в Python
- Модуль pprint: улучшение вывода данных
- Определение объема памяти объекта
- Функция map() в Python
- Функция findall() для поиска вхождений строки
- Работа с комплексными числами в Python
- Управление ресурсами в Python
- Библиотека sh: использование команд bash в Python
- Работа с JSON в Python















