Курс 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"
- JSON-esque в Python
- Работа с файлами в Python
- Работа с временем в Python
- Python: изменяемые и неизменяемые коллекции
- Использование defaultdict в Python
- Оператор == в Python
- Переопределение оператора % для объектов
- PATCH-запрос с библиотекой requests
- Возврат нескольких значений
- Декораторы в Python
- Многоточие в Python
- Функция reduce() из модуля functools
- Сортировка в Python
- Переопределение метода
- Просмотр внешнего файла в Python
- Отладчик pdb: начало работы
- Навыки Python: строки, типы данных
- Парсинг статей с Newspaper3k
- Импорт в Python: список all
- Работа с индексами списков
- Поиск шаблона в начале строки
- Автоматизация с Python
- Работа с библиотекой xkcd
- Реализация метода __abs__ в Python
- Объединение коллекций в Python
- Добавление элементов в список
- Генератор бросков кубиков
- Печать месячного календаря
- Множества и frozenset
- Метод get() в Python
- Разделение строк в Python
- Форматирование строк в Python
- Работа с WindowsPath()
- Итерации в Python
- 9 уловок для чистого кода
- GitHub в Telegram: подписка на уведомления
- Базовые объекты Python
- Генераторы в Python
- Измерение времени выполнения кода
- Извлечение данных из JSON
- Функция __init__ в Python
- Анонимные функции Lambda
- Создание таблиц в Python с PrettyTable
- Метод add для класса Vector
- Генераторы в Python















