Курс 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"
- Установка random seed в Python
- Изменение элемента списка
- Управление виртуальными окружениями в Python
- Запуск внешних программ с subprocess
- Обмен значений переменных в Python
- Округление в Python
- Протокол управления контекстом
- Преобразование типов данных в set comprehension
- Работа с файлами в Python
- Метод repr() в Python
- Проверка элементов списка условием
- Метод count в Python: почему count(», ») возвращает 4?
- Списки в Python
- Работа с YAML в Python
- Явный импорт переменных
- Очистка данных в Python
- Проверка типов с помощью isinstance
- Декораторы с @wraps
- Создание новой даты в Python
- Распаковка аргументов в Python
- Python reversed() функция
- Метод __imod__ для Python
- Блок else в Python
- Классы данных в Python
- Генераторы в Python
- Поиск индекса элемента в списке
- Lambda-функция в Python: использование с map() и sum()
- JMESPath в Python
- Расчет времени выполнения
- Декораторы в Python
- Сравнение def и lambda функций в Python
- Проверка версии Python
- Метод rpow в Python
- Python defaultdict добавление ключа
- Изменение объектов в Python
- Тест скорости набора текста на Python
- Работа с collections в Python.
- Наиболее частотные элементы с помощью Counter
- Удаление символа из строки
- Создание генераторов
- Объединение словарей в Python
- Функции map, filter, reduce
- Нахождение отличий в списках
- Открытие, чтение и закрытие файла















