Курс 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. Сериализация данных в JSON с помощью json.dumps
  2. Уникальность ключей в словаре
  3. Создание списков в Python
  4. Выражения-генераторы в Python
  5. Проверка надежности пароля на Python
  6. Взаимодействие с sys
  7. Определение функций с необязательными аргументами
  8. Встраивание HTML в Jupyter Notebook
  9. Метод __iand__ для пользовательских классов
  10. Склеивание строк через метод join()
  11. Работа со стеком в Python
  12. Создание класса очереди
  13. Считывание бинарного файла в Python
  14. Работа со словарями в Python
  15. Обработка ошибок ввода данных
  16. Pretty-printing JSON в Python
  17. Декоратор защиты анонимных пользователей
  18. Вставка переменных в шаблоны Flask
  19. Работа с Requests для HTTP-запросов
  20. Поиск элементов BeautifulSoup
  21. Работа с комплексными числами
  22. Декодирование байтов в строку
  23. Сортировка HTML-элементов
  24. Удаление элементов из списка в Python
  25. Удаление ключа из словаря в Python
  26. Регистрация на курсы SF Education
  27. Закрытие файла в Python
  28. Хешируемые ключи в Python
  29. Работа с географическими данными в Python
  30. Преобразование в float
  31. Работа с типами данных в Python с помощью pydantic.
  32. Группы исключений в Python
  33. Преобразование объекта в строку
  34. Поиск самого частого элемента
  35. Работа с Telegram API на Python
  36. Распаковка аргументов в Python
  37. Частичное применение функций в Python
  38. Замеры производительности в Python
  39. Перемешивание списка с shuffle()
  40. Реверс строки и списка в Python.
  41. capitalize() — изменение регистра первого символа строки
  42. Работа со строками в Python
  43. Работа с модулем bisect
  44. Удаление файлов с shutil.os.remove()
  45. Генерация чисел с range()

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