Курс 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. JSON-esque в Python
  2. Работа с файлами в Python
  3. Работа с временем в Python
  4. Python: изменяемые и неизменяемые коллекции
  5. Использование defaultdict в Python
  6. Оператор == в Python
  7. Переопределение оператора % для объектов
  8. PATCH-запрос с библиотекой requests
  9. Возврат нескольких значений
  10. Декораторы в Python
  11. Многоточие в Python
  12. Функция reduce() из модуля functools
  13. Сортировка в Python
  14. Переопределение метода
  15. Просмотр внешнего файла в Python
  16. Отладчик pdb: начало работы
  17. Навыки Python: строки, типы данных
  18. Парсинг статей с Newspaper3k
  19. Импорт в Python: список all
  20. Работа с индексами списков
  21. Поиск шаблона в начале строки
  22. Автоматизация с Python
  23. Работа с библиотекой xkcd
  24. Реализация метода __abs__ в Python
  25. Объединение коллекций в Python
  26. Добавление элементов в список
  27. Генератор бросков кубиков
  28. Печать месячного календаря
  29. Множества и frozenset
  30. Метод get() в Python
  31. Разделение строк в Python
  32. Форматирование строк в Python
  33. Работа с WindowsPath()
  34. Итерации в Python
  35. 9 уловок для чистого кода
  36. GitHub в Telegram: подписка на уведомления
  37. Базовые объекты Python
  38. Генераторы в Python
  39. Измерение времени выполнения кода
  40. Извлечение данных из JSON
  41. Функция __init__ в Python
  42. Анонимные функции Lambda
  43. Создание таблиц в Python с PrettyTable
  44. Метод add для класса Vector
  45. Генераторы в Python

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