Курс 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
- Перебор элементов списка в Python
- Создание треугольника Паскаля
- Переопределение метода len
- Перемешивание списка с shuffle()
- Python itertools combinations() — группировка элементов
- Декораторы в Python
- Генерация ключей RSA
- Подписка на SelectelNews в Twitter
- Проблема сравнения словарей
- Проверка ввода с помощью isdigit
- Подсказки типов в Python
- Генератор списка с условием if
- Склеивание строк через метод join()
- Разделение функций на этапы
- Преобразование чисел в восьмеричную строку
- Python 3.12: Псевдонимы типов
- Оператор is в Python
- Генераторы списков в Python
- Сортировка в Python
- Преобразование вложенного списка
- Функции в Python
- Форматирование вывода с F-строками
- Использование type hints
- Аргументы *args и **kwargs
- Частичное совпадение пользовательского ввода в Python 3.10
- Работа с комплексными числами
- Декоратор Property в Python
- Объединение строк с помощью метода join
- Методы HTTP запросов в Flask
- kwargs в Python
- Руководство по библиотеке pydantic
- Метаклассы в Python
- Импорт модулей и пакетов в Python
- Операторы увеличения и уменьшения в Python
- Определение наиболее частого элемента с помощью collections.Counter
- Передача аргументов в Python
- Работа с файлами в Python
- Операции со строками в Python
- Объединение словарей в Python
- Преобразование кортежа в словарь.
- Установка и использование Python-dateutil
- Повторение элементов в Python
- Преобразование строки в число
- Python Метод sleep() времени
- Вложенные функции в Python
- Работа с рекламными данными в Pandas















