Курс 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
- Шаблоны и наследование в Flask
- Модуль xkcd: загрузка комиксов
- Инверсия списка и строки
- Оператор Walrus в Python
- Экспорт данных в файл.
- Форматирование строк в Python
- Константы в модуле cmath
- Объединение строк с помощью метода join
- Взаимодействие с внешними процессами в Python
- Поиск уникальных элементов строкой в Python
- Объединение словарей в Python 3.5+
- Работа с часовыми поясами в Python
- Метод gt в Python
- Навыки Python: строки, типы данных
- Метод __getitem__ в Python
- Python и Юникод: работа с цифрами
- Построение графиков в Matplotlib
- Оператор += в Python
- Работа с deque из collections
- Форматирование строк в Python
- Манипуляция формой массива в Numpy
- Тестирование модели в PyTorch
- Поиск HTML-элементов с BeautifulSoup
- Обязательные аргументы в Python
- Особенности множеств в Python
- Частичное применение функций в Python
- Функция zip() в Python
- Хеширование паролей с солью
- Операторы сравнения в Python
- Основы Python
- Секреты Python
- Работа со случайными элементами
- Проверка индексов коллекции
- Установка и использование pyshorteners
- Копирование и вставка текста в Python
- Создание namedtuple списком полей
- Сравнение def и lambda-функций
- ROT13 Шифр Цезаря в Python
- Область видимости переменных
- Закрытие файла в Python
- Функции высшего порядка в Python
- Вызов функций по строке в Python.















