Курс 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"
- Вычисление натуральных логарифмов в NumPy
- Генераторные выражения и islice.
- Python: динамическая типизация и проверка типов
- Экспорт функций в Python
- Преобразование символов в нижний регистр
- Экспорт данных в файл.
- Monkey Patching в Python
- Повторение элементов в Python
- Модуль inspect: получение информации о объектах
- Оператор «not» в Python
- Разбиение текста в Python
- Генератор чисел Фибоначчи
- Оптимизация параметров в Python
- Участие в LP стейкинге Waves
- Описание скриптов в README
- Печать месячного календаря
- Flask — веб-фреймворк Python
- Оптимизация поиска в словарях
- Форматирование строк в Python
- Подсчет количества элементов в списке
- Обмен данными с asyncio.Queue
- Работа с каталогами в Python
- Преобразование букв в нижний регистр
- Сортировка HTML-элементов
- Создание итератора
- Метод __ilshift__ для битового сдвига влево
- Работа с эмодзи в Python
- Сортировка списка по индексам
- Метод __call__ в Python
- Структуры данных в Python
- Изучение объектов с помощью dir()
- Combobox в Tkinter
- Оператор «not» в Python
- Функция enumerate() — Python
- Работа с файлами в Python
- Применение команды break
- Порядок и длина множеств в Python
- Переворот списка в Python
- Копирование файлов с shutil()
- Подсчет элементов в Python
- Обработка исключений в Python
- Преобразование в float
- Python 3.12: переиспользование кавычек
- Вызов функций по строке в Python.
- Визуализация пропусков данных
- Работа с CSV в Python
- Обход элементов в Python















