Курс 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"
- Вставка переменных в шаблоны Flask
- Функция с **kwargs в Python
- Роль object и type в Python
- Область видимости переменных
- Поиск email
- Форматирование кода на Python
- Срезы в Numpy
- Хеширование паролей с солью
- Функция enumerate в Python
- Разделение строк методом split()
- Создание пустых функций и классов в Python
- Генерация фальшивых данных с Faker
- Копирование словарей и списков в Python
- Переопределение метода __pow__
- Форматирование строк в Python
- Enum в Python
- f-строки в формате строк
- Использование метода lower()
- Декораторы в Python
- Группы исключений в Python
- Python: динамическая типизация и проверка типов
- Повторение элементов в Python
- Переопределение метода sub
- Python: цикл for и оператор присваивания
- F-строки в Python 3.8
- Получение атрибутов и методов класса
- Генераторы списков в Python
- Оператор морж в Python 3.8
- Создание уникального проекта
- Создание новых списков в Python
- Работа с модулем random
- Создание и инициализация объектов
- Модуль inspect: получение информации о объектах
- Лямбда-функции в defaultdict
- Генераторы в Python
- Измерение времени выполнения с помощью time
- Реверс строки и списка в Python.
- Игра «Угадывание чисел»
- Функция findall() для поиска вхождений строки
- Функции map() и reduce() в Python
- Оптимизация строк в Python
- Улучшенные подсказки для импорта в Python 3.12
- Извлечение аудио из видео
- Python enumerate() использование
- Запуск внешних программ с subprocess
- Объединение списков в Python
- Функция divmod() в Python















