Курс Python → Генераторы в Python
Генераторы в Python — это специальный тип функций, которые вместо ключевого слова return используют ключевое слово yield. Когда функция с ключевым словом yield вызывается, она возвращает объект-генератор, который можно использовать для итерации по последовательности значений, возвращаемых функцией.
Первый способ создания генератора — это использование генераторных выражений. Генераторное выражение похоже на списковое включение, но вместо квадратных скобок используются круглые скобки. Например, можно создать генератор, который будет возвращать квадраты чисел от 1 до 10 следующим образом:
gen = (x**2 for x in range(1, 11))
for num in gen:
print(num)
Второй способ создания генератора — это создание функции, которая содержит ключевое слово yield. Например, можно создать генератор, который будет возвращать числа Фибоначчи:
def fibonacci():
a, b = 0, 1
while True:
yield a
a, b = b, a + b
fib_gen = fibonacci()
for num in fib_gen:
if num > 1000:
break
print(num)
Генераторы в Python могут быть очень полезны для работы с большими объемами данных, так как они позволяют эффективно обрабатывать элементы последовательностей без необходимости хранить все значения в памяти. Использование генераторов помогает сэкономить память и ускорить выполнение программы.
Другие уроки курса "Python"
- Сравнение def и lambda-функций
- Основные методы NumPy
- Сравнение def и lambda в Python
- Оператор in в Python
- Блок try…finally в Python
- Сравнение def и lambda функций в Python
- Оптимизация памяти с slots
- Навыки Python: строки, типы данных
- GitHub в Telegram: подписка на уведомления
- Функция zip() для объединения списков
- Создание новых функций через partial
- Работа с JSON данными в Python
- Анализ текста на русском языке с помощью Pymystem3
- Глобальные переменные в Python
- Основы слова
- CLI-инструмент howdoi
- Избегайте пустого списка
- Работа с контекст-менеджером «with»
- Удаление символов новой строки в Python.
- Измерение времени выполнения кода
- Метод pos в Python
- Генерация строк с .join()
- Генераторы в Python
- Работа со словарями с defaultdict из collections
- Тестирование функции сложения
- Поиск с помощью регулярных выражений
- Копирование объектов в Python
- Область видимости переменных
- Функции map() и reduce() в Python
- Python 3.12: переиспользование кавычек
- Создание новых функций с помощью functools.partial
- Передача словаря через **kwargs
- Создание и операции с дробями
- Просмотр внешних файлов в %pycat
- Создание словарей в Python
- Создание namedtuple из словаря
- Методы list в Python
- Перевод текста с Python Translator
- Создание новых списков в Python
- Операторы увеличения и уменьшения в Python
- Передача аргументов в Python
- Участие в сообществе @selectel
- Метод join для объединения строк
- Возврат нескольких значений из функции















