Курс 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. Настройка логгера Logzero
  2. Протокол управления контекстом
  3. Работа с аргументами командной строки
  4. Комментарии в Python
  5. Метод setdefault() в Python
  6. Создание вкладок с TKinter
  7. Класс Counter() для подсчета элементов
  8. Удаление дубликатов из списка
  9. Отступы в Python
  10. Замена текста в Python
  11. Метод join() с набором
  12. Удаление элемента из списка
  13. Codecademy в Telegram
  14. Использование двоеточия в Python
  15. Замена текста с re.sub()
  16. Хешируемые ключи в Python
  17. Многострочные комментарии в Python
  18. Управление браузером с Selenium
  19. Загрузка постов Instagram
  20. Логические значения в Python
  21. Аннотации типов в Python
  22. Непрерывная проверка в Python
  23. Функции высшего порядка в Python
  24. Сохранение Unicode в JSON
  25. Назначение максимального и минимального значения переменной в Python.
  26. Форматирование строк в Python.
  27. Удаление элементов из списка в Python
  28. Пропуск начальных строк с помощью dropwhile()
  29. Метод pop() списка
  30. Построение графиков в Matplotlib
  31. Руководство по библиотеке pydantic
  32. Объединение словарей в Python
  33. Форматирование строк с % в Python
  34. Динамическая типизация в Python
  35. Логирование с Logzero
  36. PrettyTable: создание таблицы
  37. Преобразование range в итератор
  38. Генераторы в Python
  39. Изменение элемента списка
  40. Фильтрация данных в Python.
  41. Разделение строк методом split()
  42. Избегание циклических зависимостей классов в Python
  43. Метод clear для коллекций
  44. Работа со списками
  45. Функция zip() в Python

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