Курс 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. ChainMap.new_child() — добавление нового словаря
  2. Разбиение текста в Python
  3. Использование type hints
  4. Получение списка файлов в директории с использованием os
  5. Генераторы данных
  6. Регистрация на курсы SF Education
  7. Работа с collections в Python
  8. Настройка вывода в Numpy
  9. Python Ellipsis использование
  10. Закрытие файла в Python
  11. HTTP-запросы с библиотекой Requests
  12. Счетчик в Python: most_common()
  13. Переменная с нижним подчеркиванием
  14. Справка по импортированным модулям
  15. Вызов функций по строке в Python.
  16. Группировка элементов Python
  17. Методы сравнения множеств
  18. Генераторы по генератору
  19. Отладка утечек памяти в Python
  20. Функция __init__ в Python
  21. Установка и использование pyshorteners
  22. Работа с изменяемыми списками
  23. Преобразование типов данных в set comprehension
  24. Открытие, чтение и закрытие файла
  25. Вакансии в Nebius
  26. Методы shutil для работы с файлами
  27. Обработка исключений в Python
  28. Фильтры Pillow: NEAREST, BILINEAR, BICUBIC
  29. Отслеживание прогресса с tqdm
  30. Поиск индексов в списке
  31. Функция count() в Python
  32. Python: библиотеки и функции
  33. Работа с PosixPath() в Python
  34. Проверка версии Python
  35. Оператор is в Python
  36. Оптимизация методов в Python 3.7
  37. Измерение времени выполнения кода
  38. Генерация ключей RSA
  39. Управление сессиями в Python
  40. Особенности запятых в Python
  41. Измерение времени выполнения кода
  42. Управление ресурсами в Python
  43. Тестирование с responses
  44. Метод difference_update() — разность множеств

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