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

Генераторные функции (generator functions) — это мощный инструмент в Python, который позволяет создавать итераторы с помощью ключевого слова yield. Когда у вас есть необходимость обработать большой объем данных или выполнить сложные операции с элементами списка, генераторные функции становятся незаменимыми. Они позволяют удобно организовать фильтрацию и обработку элементов списка, не загружая память излишне.

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

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


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

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

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

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

Автор урока

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

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

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

  1. Чтение бинарного файла в Python.
  2. Удаление falsy-значений из списка с помощью filter
  3. Удаление файлов и папок в Python
  4. Удаление ссылок в Python
  5. Сравнение строк в Python
  6. Функция enumerate в Python
  7. Операции с комплексными числами
  8. Подписка на каналы разработчиков
  9. Метод rmatmul для пользовательских матриц
  10. Отделение звука от видео
  11. Измерение потребления памяти при сортировке
  12. Транспонирование 2D-массива с помощью zip
  13. Распаковка аргументов в Python
  14. Функции map, filter, reduce
  15. Фильтры Pillow: NEAREST, BILINEAR, BICUBIC
  16. Работа с JSON данными в Python
  17. Вставка переменных в шаблоны Flask
  18. Поиск наиболее частого элемента
  19. Улучшение читаемости кода в Python
  20. Управление контекстом выполнения кода
  21. Срезы в Python
  22. Распаковка с оператором *
  23. Копирование объектов в Python
  24. Обезопасьте ввод данных
  25. Разделение функций на этапы
  26. Метод difference_update() — разность множеств
  27. Создание директории в Python
  28. Различия символов в Python
  29. Работа с итераторами в Python
  30. Хранение данных
  31. Искажение имен в Python
  32. Установка и загрузка Instaloader
  33. Получение комбинаций в Python
  34. Инициализация переменных
  35. Возведение в квадрат с помощью itertools
  36. Работа с пакетами
  37. Beautiful Soup — извлечение данных из HTML
  38. Прокачанный трейсинг ошибок
  39. Работа с географическими данными.
  40. Функции-генераторы в Python
  41. Управление IP-адресами через прокси
  42. Управление асинхронными задачами на Python.
  43. Удаление знаков препинания в Python

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