Курс 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
  2. Создание именованных кортежей в Python
  3. Выражения-генераторы в Python
  4. Получение срезов итераторов
  5. Непрерывная проверка в Python
  6. Работа с SQLite в Python
  7. Преобразование генераторов в циклы
  8. Добавление Progressbar в Python
  9. Оператор in для проверки наличия элемента
  10. Вставка переменных в шаблоны Flask
  11. Основные операции с библиотекой Numpy
  12. Синтаксис переменных цикла в Python
  13. Генерация UUID в Python
  14. Управление браузером с Selenium
  15. Особенности ключей словаря в Python
  16. Функции высшего порядка в Python
  17. Фильтрация входных данных в Python
  18. Получение списка кортежей из словаря
  19. Копирование объектов в Python
  20. Расширение операции побитового «и» в Python
  21. Удаление эмодзи с помощью pandas
  22. Работа с JSON в Python
  23. Оператор Walrus: правильное использование
  24. Автоматизация скриптов на AWS Lightsail.
  25. Работа с библиотекой requests
  26. Удаление дубликатов в pandas
  27. Удаление символа из строки
  28. Применение функции map() в Python
  29. Регистрация на курсы SF Education
  30. Метод ifloordiv для пользовательских классов
  31. Очистка строки в Python
  32. Счетчик ссылок в Python
  33. Очистка вывода в Python
  34. Форматирование строк в Python
  35. Создание директории в Python
  36. F-строки в Python 3.8
  37. Вложенные функции в Python
  38. Python Метод sleep() времени
  39. Генераторы списков
  40. Разность множеств
  41. Проверка строки на палиндром
  42. Работа с асинхронными задачами в Python
  43. Переменная Шредингера
  44. Множественные конструкторы в Python
  45. Библиотека funcy: удобные утилиты
  46. Разделение строк методом split()

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