Курс 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"
- Генераторы в Python
- Повторение и перенос строки
- Progress с библиотекой tqdm
- Работа с изменяемыми списками
- Модуль subprocess: запуск внешних команд
- Объявление переменных в Python
- Метод __iand__ для пользовательских классов
- Разбиение строки в Python
- Defaultdict в Python
- Навыки Python: строки, типы данных
- Создание списка через цикл
- Метод join() для объединения элементов строки
- Работа с часовыми поясами в Python
- Удаление эмодзи с помощью pandas
- Операции с матрицами в Python
- Получение текущей директории
- Запуск Python из интерпретатора
- Работа с timedelta в Python
- Создание класса очереди
- Поиск простых чисел
- Преобразование строк в числа в Python
- Обработка ошибок в Python
- Нахождение разницы между списками в Python
- Изменение объектов в Python
- Названия столбцов в Python таблицах
- Справка по импортированным модулям
- Прокачанный трейсинг ошибок
- Открытие и редактирование скриптов Python
- Работа со словарями с defaultdict из collections
- Операции с комплексными числами
- CSV строка разделение в Python
- Извлечение аудио из видео
- Разделение строк в Python
- JSON-esque в Python
- Оператор walrus в Python
- Удаление дубликатов из списка с помощью dict.fromkeys
- Декораторы в Python
- Вызов внешних программ в Python с помощью sh
- Метод split() в Python
- Работа с срезами в Python
- Bootle — простой веб-фреймворк
- Итерация по итерируемым объектам
- ChainMap.new_child() — добавление нового словаря
- Реверс строки в Python
- Работа со словарями в Python















