Курс 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. Установка User-Agent в Python
  2. Оператор (*) в Python
  3. Дефолтные параметры в Python
  4. Фильтрация входных данных в Python
  5. Импорт классов из другого файла
  6. Метод matmul для умножения матриц
  7. Метод get() в Python
  8. Обработка StopIteration в Python
  9. Переименование файлов в Python
  10. Анализ кода — Python
  11. Python и Монти Пайтон
  12. Именованные срезы в Python
  13. Принципы Zen of Python
  14. Просмотр атрибутов и методов класса
  15. Библиотека Chartify: руководство
  16. Работа с асинхронными задачами в Python
  17. Работа с типами данных в Python с помощью pydantic.
  18. Магические методы в Python
  19. Работа с JSON данными в Python
  20. Декоратор total_ordering для сравнения объектов
  21. Работа с NumPy массивами
  22. Применение функции map() в Python
  23. Нарезка списков в Python
  24. Работа с timedelta в Python
  25. Метод join() для объединения элементов в строку.
  26. Синхронизация доступа к ресурсам
  27. Создание словарей в Python
  28. Создание объекта timedelta
  29. Разделение строки с помощью re.split()
  30. Работа со строками в Python.
  31. Отделение звука от видео
  32. Разделение строки в Python
  33. Переопределение метода __pow__
  34. Закрытие файла в Python
  35. Удаление ключа из словаря
  36. Метод __irshift__ для Python
  37. Запуск асинхронной корутины
  38. Метод index() в Python
  39. Операции с комплексными числами
  40. Мониторинг работы программы Py-spy
  41. Оптимизация создания строк
  42. Numpy: использование Ellipsis
  43. Создание уникального множества
  44. Оператор распаковки в Python
  45. Поиск наиболее частого элемента
  46. Генераторы словарей и множеств

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