Курс 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"
- Методы HTTP запросов в Flask
- Python: изменяемые и неизменяемые коллекции
- Метод pos в Python
- Операции с матрицами в Python
- Транспонирование 2D-массива с помощью zip
- GitHub в Telegram: подписка на уведомления
- Оператор «not» в Python
- Автоматизация скриптов на AWS Lightsail.
- Тернарный оператор в Python
- Обновление множества в Python
- Настройка шрифта и цвета в Tkinter
- Создание коллекций из генератора
- Глобальные переменные в Python
- Атрибуты класса и экземпляра в Python
- Возврат нескольких значений из функции
- Установка максимального количества цифр
- Разница между датами
- Проверка ввода с помощью isdigit
- Изменение списка срезами
- Декораторы в Python
- Создание новых списков
- Определение наиболее частого элемента с помощью collections.Counter
- Извлечение чисел из текста
- Сравнение объектов в Python
- Работа с комплексными числами
- Порядок операций в Python
- Поиск файлов по шаблону
- Подсчет элементов в Python
- Удаление специальных символов
- Python UserString — создание подклассов строк
- Python: Фильтрация списков с помощью filter()
- Атрибуты класса и экземпляра
- Функция enumerate() в Python
- Работа с парами ключ-значение
- Создание новых функций с помощью functools.partial
- Функции map, filter и reduce
- Метод get для словарей
- Принципы SRP и OCP
- Применение функции к списку
- Использование подчеркивания в REPL
- Модуль math: константы π и e
- Создание матрицы в Python
- Параллельные вычисления в Python
- Метод join() для объединения элементов строки
- Декоратор для группы пользователей в Django















