Курс 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"

  1. Сравнение def и lambda-функций
  2. Основные методы NumPy
  3. Сравнение def и lambda в Python
  4. Оператор in в Python
  5. Блок try…finally в Python
  6. Сравнение def и lambda функций в Python
  7. Оптимизация памяти с slots
  8. Навыки Python: строки, типы данных
  9. GitHub в Telegram: подписка на уведомления
  10. Функция zip() для объединения списков
  11. Создание новых функций через partial
  12. Работа с JSON данными в Python
  13. Анализ текста на русском языке с помощью Pymystem3
  14. Глобальные переменные в Python
  15. Основы слова
  16. CLI-инструмент howdoi
  17. Избегайте пустого списка
  18. Работа с контекст-менеджером «with»
  19. Удаление символов новой строки в Python.
  20. Измерение времени выполнения кода
  21. Метод pos в Python
  22. Генерация строк с .join()
  23. Генераторы в Python
  24. Работа со словарями с defaultdict из collections
  25. Тестирование функции сложения
  26. Поиск с помощью регулярных выражений
  27. Копирование объектов в Python
  28. Область видимости переменных
  29. Функции map() и reduce() в Python
  30. Python 3.12: переиспользование кавычек
  31. Создание новых функций с помощью functools.partial
  32. Передача словаря через **kwargs
  33. Создание и операции с дробями
  34. Просмотр внешних файлов в %pycat
  35. Создание словарей в Python
  36. Создание namedtuple из словаря
  37. Методы list в Python
  38. Перевод текста с Python Translator
  39. Создание новых списков в Python
  40. Операторы увеличения и уменьшения в Python
  41. Передача аргументов в Python
  42. Участие в сообществе @selectel
  43. Метод join для объединения строк
  44. Возврат нескольких значений из функции

Marketello читают маркетологи из крутых компаний