Курс 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"
- Извлечение чисел из текста
- Создание Telegram-бота на Python
- PEP-401: оператор
- Работа с массивами в Numpy
- Срез в Python
- Подсчет элементов с помощью Counter из collections
- Pillow: работа с изображениями
- Управление User-Agent в Python
- Замена текста в Python
- Преобразование типов данных в set comprehension
- Декораторы в Python
- Howdoi — получение ответов из терминала
- Библиотека wikipedia для Python
- Логирование с Logzero
- Метод rmatmul для обратного матричного умножения
- Курс Data Scientist в медицине
- discard() — удаление элемента из множества
- Обработка данных в Python
- Работа с контекстным менеджером Pool
- Расчет времени выполнения программы
- Операции с комплексными числами
- Синхронизация потоков с time.sleep()
- Курс по дообучению ChatGPT
- Разделение строки с регулярными выражениями
- Обход дочерних элементов BeautifulSoup
- Работа с Telegram API на Python
- Отслеживание прогресса с tqdm
- Функция zip() для объединения списков
- Нахождение максимального значения и его индекса в списке
- Вычисление натурального логарифма в NumPy
- Использование эмодзи в Python
- Область видимости переменных
- Курсы Яндекс Практикум
- Именованные срезы в Python
- Оператор in и not in в Python
- Работа с файлами в Python
- Метод join() с набором
- Логирование с Loguru
- Метод gt в Python
- Локальные переменные.
- inspect в Python: анализ кода
- Многоточие в Python
- Создание лямбда-функций
- Хэш-функции и метод цепочек
- Генератор списка с условием if
- Оператор in в Python
- Хранение переменных в Python.
- Официальный канал Python в Telegram















