Курс Python → Генераторы в Python
Генераторы (generators) в Python — это специальный тип функций, которые позволяют создавать итерируемые объекты без необходимости хранить все значения в памяти. Вместо этого значения вычисляются по мере необходимости. Генераторы особенно полезны при работе с большими объемами данных или при работе с бесконечными последовательностями.
Для создания генератора в Python используется ключевое слово yield вместо return. Когда функция с генератором вызывается, она не выполняется полностью, а возвращает объект-генератор, который можно использовать для итерации. Каждый раз, когда вызывается метод next() или используется цикл for, функция продолжает выполнение с того момента, где был вызван yield, и возвращает значение.
def fibonacci():
a, b = 0, 1
while True:
yield a
a, b = b, a + b
fib = fibonacci()
for i, num in enumerate(fib):
if i == 10:
break
print(num)
В приведенном выше примере определен генератор fibonacci, который возвращает бесконечную последовательность чисел Фибоначчи. При каждом вызове метода next() или итерации циклом for, генератор возвращает следующее число Фибоначчи. Используя цикл for и функцию enumerate, мы можем перебрать первые 10 чисел Фибоначчи из генератора.
Использование генераторов в Python помогает экономить память и увеличивает производительность программы, особенно при работе с большими объемами данных. Генераторы также удобны при работе с потоками данных или при необходимости создания бесконечных последовательностей, таких как генерация случайных чисел или обход файлов.
Другие уроки курса "Python"
- Фильтры Pillow: NEAREST, BILINEAR, BICUBIC
- Протокол управления контекстом
- Команда %dhist — список посещенных каталогов
- Создание словарей в Python
- Применение промокода в Много лосося
- Счетчик в Python: most_common()
- Список переменных с %who
- Форматирование строк в Python
- Вложенные функции в Python
- Применение функций в Python
- Именованные срезы в Python
- Метод join() с набором
- Объединение словарей в Python
- Работа со случайными элементами
- Обновление шаблона base.html
- Работа с классами данных
- Векторизация в Python с NumPy.
- Хранение данных
- SciPy: широкий функционал для математических операций
- Подсчет элементов с помощью Counter
- Метод __imod__ для Python
- Преобразование списка в словарь через генератор
- Удаление первого элемента списка
- Параллельные вычисления в Python
- Сложение матриц в NumPy
- Python: цикл for и оператор присваивания
- Метод Enumerate() для списков
- Сортировка элементов с OrderedDict
- Метод join для объединения строк
- Глобальные переменные в Python
- Работа с комплексными числами
- Работа с парами ключ-значение
- Работа с атрибутом dict
- Работа с утверждениями в Python
- Открытие и запись файлов
- Применение функции к списку
- Многострочные комментарии в Python
- Ошибка NotImplemented в Python
- Группы исключений в Python
- Модуль array: создание и использование массивов
- Декораторы для регистрации функций
- Официальный канал Python в Telegram
- Создание списков в Python















