Курс 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"
- Создание именованных кортежей в Python
- Преобразование числа в восьмеричную строку
- Генераторы списков
- Бесконечная проверка в Python
- Работа с defaultdictами в Python
- Комментарии в Python
- Удаление элемента из списка в Python
- Проверка дублей в списке.
- Обмен данными с asyncio.Queue
- Работа с библиотекой xkcd
- Манипуляция формой массива в Numpy
- Глобальные переменные в Python
- Лимиты на ресурсы Python
- Слияние словарей в Python 3.9
- Удаление элементов из списка в Python
- ROT13 Шифр Цезаря в Python
- Создание списка дат
- Проверка типа объекта в Python
- Атрибуты класса и экземпляра
- Конкатенация строк в Python
- Удаление элементов из списка
- Установка и использование howdoi
- Удаление пробелов методом translate()
- Построение графиков в терминале с bashplotlib
- Создание задания в Cron
- Вычисление логарифмов в Python
- Функция product() из itertools
- Python и Юникод: работа с цифрами
- Навыки Python: строки, типы данных
- Метод ne для сравнения объектов
- Combobox в Tkinter
- Очистка вывода в Python
- Расчет времени выполнения кода
- Показ всплывающих окон Tkinter
- Особенности запятых в Python
- Работа со строками в Python
- Работа с CSV файлами в Python
- Сравнение def и lambda-функций
- Инверсия списка и строки
- Округление дробей в Python
- Работа с модулем random
- Namedtuple в Python
- Асинхронное выполнение задач в Python
- Создание копии итератора
- Ошибка NotImplemented в Python
- Наследование в программировании















