Курс 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"
- Модуль Antigravity в Python 3
- Проверка списка: any() и all()
- Методы classmethod и staticmethod
- Поиск шаблона в начале строки
- Использование *args
- Метод join() для объединения элементов строки
- Представление бесконечности в Python
- Удаление дубликатов из списка
- Python: динамическая типизация и проверка типов
- Перемещение и удаление файлов в Python
- Регистрация на хакатоне
- Работа с collections в Python
- Удаление ссылок в Python
- Кортеж в Python: создание и использование
- Логические значения в Python
- Метод enumerate() в Python
- Преобразование в float
- Оператор in в Python
- Закрытие файла в Python
- Конструктор в Python
- Доступ к локальным переменным
- Оптимизация памяти с slots
- Работа с многоуровневыми словарями в Python
- UserList в Python: Описание и примеры использования
- Получение размера объекта с sys.getsizeof()
- Дизассемблирование Python кода
- Метод gt в Python
- Метод get() в Python
- Срез в Python
- Многострочные строки в Python
- Преобразование чисел в восьмеричную строку
- Тест скорости набора текста на Python
- Разделение строки с помощью split()
- Создание лямбда-функций
- Разделение строки на пары ключ-значение.
- Операторы сравнения в Python
- Список импортированных модулей в Python
- Расширение информации об ошибке в Python
- Чтение и запись TOML-конфигов
- Проверка ввода с помощью isdigit
- Работа с defaultdictами в Python
- Настройка Cron
- Комментарии в Python
- Создание списков в Python
- Метод count в Python: почему count(», ») возвращает 4?















