Курс 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. Python OrderedDict и fromkeys() — работа с словарями
  2. Функции в Python
  3. Сортировка и разворот списка
  4. Возвращение нескольких значений
  5. Создание копии списка в Python
  6. Разница между датами
  7. Переопределение метода __eq__
  8. Повторение элементов в Python
  9. Методы list в Python
  10. Транспонирование матрицы
  11. Объединение кортежей в Python
  12. Передача параметров в Python
  13. Установка и использование TensorFlow
  14. Retrying в Python: повторные вызовы
  15. Переворот строки
  16. Установка и загрузка Instaloader
  17. Вычисление натурального логарифма в NumPy
  18. Отслеживание прогресса с tqdm
  19. Создание и обучение модели с Keras
  20. Подсчет элементов с помощью Counter из collections
  21. GitHub в Telegram: подписка на уведомления
  22. Метод gt в Python
  23. Удаление файлов с shutil.os.remove()
  24. Объединение списков в Python.
  25. Операторы присваивания в Python
  26. Генерация ключей RSA
  27. Блок else в Python
  28. Отправка POST запроса на сервер.
  29. Преобразование в float
  30. Сортировка слиянием
  31. Переопределение метода __rshift__
  32. Разрешение имен в Python
  33. Импорт модулей в Python 3.12
  34. Параллельные вычисления в Python
  35. Отрицательные индексы списков
  36. Генератор чисел Фибоначчи
  37. OrderedDict — упорядоченный словарь
  38. Создание коллекций из генератора
  39. Метод rpow в Python
  40. Метод __irshift__ для побитового сдвига вправо
  41. Атрибуты массивов в Numpy
  42. Метод get для словарей
  43. Аннотации типов в Python

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