Курс 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"
- Избегайте использования goto
- GitHub в Telegram: подписка на уведомления
- Преобразование в float
- Различия символов в Python
- Flask — веб-фреймворк Python
- Сравнение неупорядоченных списков
- Лямбда-функции в Python
- Сравнение строк в Python
- Хранение переменных в Python.
- Тест скорости набора текста на Python
- Создание пользовательской коллекции в Python
- Работа со строками в Python
- Метод __int__ в Python
- Выражения-генераторы в Python
- Преобразование чисел в Python
- Функции map, filter и reduce
- Оптимизация памяти с slots
- Удаление falsy-значений из списка с помощью filter
- Нахождение хеша для бесконечности и NaN в Python
- Переопределение метода __pow__
- Операции с комплексными числами
- Упрощение условных выражений с тернарным оператором
- Инициализация структур данных
- Перетасовка списков в Python
- Работа с JSON в Python
- Функция __init__ в Python
- Введение в PyTorch
- Бесконечные списки в Python
- Проверка списка: any() и all()
- Добавление элемента к кортежу
- Инициализация переменных
- Python: Фильтрация списков с помощью filter()
- Работа с Telegram API на Python
- Форматирование строк в Python
- Работа с файлами в Python
- Работа с SQLite в Python
- Python Метод del.
- Создание тестовых данных с Faker
- Управление контекстом выполнения кода
- Python Тесты и Гайды
- Concrete Paths в Python
- Управление виртуальными средами в Python
- Метод add для класса Vector
- Избегайте пустого списка
- Модуль math: основные функции















