Курс Python → Генераторы в Python

Генераторные функции — это мощный инструмент в Python, который позволяет создавать итераторы с минимальным использованием памяти. Вместо того чтобы создавать список или кортеж сразу со всеми значениями, генераторная функция генерирует значения по мере необходимости. Это особенно полезно, когда у вас есть большой объем данных, которые необходимо обработать поэлементно.

Для создания генераторной функции в Python используется ключевое слово yield. Когда интерпретатор Python встречает оператор yield в функции, он приостанавливает выполнение функции и возвращает значение. При следующем вызове функции выполнение продолжается с того же места, где оно было приостановлено, и продолжается до следующего оператора yield.


def my_generator():
    for i in range(5):
        yield i

gen = my_generator()
for value in gen:
    print(value)

В этом примере функция my_generator является генераторной функцией, которая возвращает числа от 0 до 4. При вызове функции my_generator() создается объект-генератор, который можно использовать в цикле for для обхода всех значений, сгенерированных функцией.

Использование генераторных функций особенно полезно в случаях, когда необходимо применить серию фильтров или обработчиков к элементам списка. Вместо того чтобы создавать промежуточные списки с отфильтрованными значениями, можно использовать генераторы для ленивой обработки данных, что позволяет сэкономить память и улучшить производительность.

Твои коллеги будут рады, поделись в

Автор урока

Дмитрий Комаровский
Дмитрий Комаровский

Автоматизация процессов
в КраснодарБанки.ру

Другие уроки курса "Python"

  1. Вызов функций по строке в Python.
  2. Имена объектов в Python
  3. Оператор «is not» в Python
  4. Именованные срезы в Python
  5. Метод splitlines() для разделения строк
  6. Избегание циклических зависимостей классов в Python
  7. Функции all и any в Python
  8. Создание и операции с дробями
  9. Счетчик ссылок в Python
  10. Переменные в Python
  11. Основные методы NumPy
  12. Печать месячного календаря
  13. Модуль itertools: эффективная работа с итераторами
  14. Проверка списка: any() и all()
  15. Проверка строки на палиндром
  16. Работа с NumPy массивами
  17. Оператор морж в Python 3.8
  18. Создание коллекций из генератора
  19. Настройка нарезки списков
  20. Замыкания в Python
  21. Объединение, распаковка и деструктуризация
  22. Получение частей дроби
  23. Метод getitem для доступа к элементам последовательности
  24. Протокол управления контекстом
  25. Логирование в Python
  26. Разбиение текста в Python
  27. Python UserString — создание подклассов строк
  28. Отправка HTTP-запросов в Python
  29. Распаковка значений в Python
  30. Многопоточность и асинхронное программирование в Python
  31. Модуль subprocess: запуск внешних команд
  32. Сравнение объектов в Python
  33. Защита данных в Python
  34. Создание списка через цикл
  35. Сравнение def и lambda функций в Python
  36. Метод split() в Python
  37. Библиотека funcy: удобные утилиты
  38. Генерация QR-кодов с библиотекой qrcode
  39. Оператор += в Python
  40. Уникальность ключей в словаре
  41. Импортирование в Python
  42. Инициализация структур данных
  43. Непрерывная проверка в Python
  44. Enum в Python

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