Курс 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. Переопределение метода __floordiv__
  2. Метаклассы в Python
  3. Порядок операций в Python
  4. Прокачанный трейсинг ошибок
  5. Переменные класса и экземпляра
  6. Оператор == в Python
  7. Итерация по итерируемым объектам
  8. Функции all и any в Python
  9. Моржовый оператор в Python 3.8
  10. Обработка ошибки IndexError
  11. Модуль math: основные функции
  12. Метод add для класса Vector
  13. Логический оператор «and» в Python
  14. Оператор объединения словарей
  15. Тестирование времени с Freezegun
  16. Добавление вложенных списков
  17. Регистрация на хакатоне
  18. Работа с IP-адресами в Python
  19. UserList в Python: Описание и примеры использования
  20. Применение функции к элементам списка
  21. Список методов и атрибутов
  22. Приоритет операций в Python
  23. Переименование файлов в Python
  24. Вычисление натурального логарифма в NumPy
  25. Работа с модулем Calendar
  26. Python: Фильтрация списков с помощью filter()
  27. Метод get() для словарей
  28. Работа с YAML в Python
  29. Запуск Python из интерпретатора
  30. Оператор умножения для вектора
  31. Замена текста с re.sub()
  32. Проверка ввода с помощью isdigit
  33. Работа с массивами в Python
  34. Функция rsplit() в Python
  35. Генераторы в Python
  36. Участие в сообществе @selectel
  37. Исправление ошибки NameError
  38. Установка Git и AWS CLI
  39. Преобразование кортежа в словарь.
  40. Создание новых списков через list comprehensions
  41. Комплексные числа в Python
  42. Фильтры Pillow: NEAREST, BILINEAR, BICUBIC
  43. Использование super() в Python
  44. Выборка чисел
  45. Вывод символов строки в Python
  46. Проверка существования переменной с оператором :=
  47. Списки: объединение, изменение

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