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

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

Пример создания простого генератора:


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

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

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

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

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

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

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

Автор урока

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

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

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

  1. Открытие и редактирование скриптов Python
  2. Глобальные переменные в Python
  3. Метод setdefault() в Python
  4. Команда %dhist — список посещенных каталогов
  5. Создание списка через цикл
  6. Методы и функции в Python
  7. Принципы программирования
  8. Округление банкира в Python
  9. Создание списка через итерацию
  10. Сериализация объектов в Python
  11. Генератор списка с условием if
  12. Преобразование в float
  13. Очистка данных с помощью pandas
  14. Логические значения в Python
  15. Блок else в обработке исключений
  16. Логирование в Python
  17. Различия символов в Python
  18. Работа с аргументами командной строки в Python
  19. globals и locals
  20. Округление чисел с помощью round
  21. Декоратор total_ordering для сравнения объектов
  22. Сравнение def и lambda-функций
  23. Хранение данных
  24. Изменение элемента списка
  25. Основные функции и модули Python
  26. Раздувающийся словарь в Python
  27. Python enumerate() функции
  28. Отношения подклассов в Python
  29. Списки в Python
  30. Работа с буфером обмена на Python
  31. Оператор «моржа» (Walrus Operator)
  32. Копирование объектов в Python
  33. Декораторы для регистрации функций
  34. Удаление дубликатов в pandas
  35. Конвертация текстовых чисел с помощью Numerizer
  36. Логирование с Loguru
  37. Работа со словарями в Python
  38. Установка библиотек в Python
  39. Руководство по Pymorphy2
  40. Обработка ошибок в Python
  41. Работа со случайными элементами
  42. Множественное назначение в Python
  43. Мониторинг памяти с Pympler
  44. Импорт модулей в Python 3.12
  45. Избегание циклических зависимостей классов в Python

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