Курс 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. Проблема сравнения словарей
  2. Асинхронное программирование с asyncio
  3. Пересечение списков с использованием множеств
  4. Поиск шаблона в начале строки
  5. Создание вложенного генератора
  6. Создание графиков в терминале
  7. Сравнение строк в Python
  8. Слияние словарей в Python 3.9
  9. Безопасные SQL-запросы в Python 3.11
  10. Выключение компьютера с помощью Python
  11. Работа с NumPy массивами
  12. Создание обратного итератора
  13. Метод Enumerate() для списков
  14. Цикл for в Python
  15. Повторение элементов в Python
  16. Декораторы в Python
  17. Генераторы списков в Python
  18. Блок else в обработке исключений
  19. Группировка элементов в словарь
  20. Функция format() в Python
  21. Python reversed() vs срез[::-1]
  22. Распаковка значений в Python
  23. Оператор assert в Python
  24. Необязательные аргументы в Python
  25. Сравнение строк в Python
  26. Получение атрибутов и методов класса
  27. Определение индекса элемента списка
  28. Изменяемые и неизменяемые объекты
  29. Вставка переменных в шаблоны Flask
  30. Зарезервированные слова в Python
  31. Печать в одной строке
  32. Математические функции в Python
  33. Изменение элемента списка
  34. Переопределение метода __and__
  35. Запуск файлового сервера
  36. Множества и frozenset
  37. Работа с пользовательским вводом
  38. Удаление элемента по индексу в Python
  39. Сравнение def и lambda функций в Python
  40. Создание итератора
  41. Разделение строки с помощью split()
  42. Генерация случайных чисел в Python
  43. Использование метода lower()
  44. Создание задания в Cron
  45. Хранение данных
  46. Импорт с альтернативным именем
  47. Проверка списка: any() и all()

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