Курс 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. Проверка списка: any() и all()
  2. F-строки в Python
  3. Математические функции в Python
  4. Лимиты на ресурсы Python
  5. Работа с библиотекой requests
  6. Копирование словарей и списков в Python
  7. Документация функции help() в Python
  8. Переворот списка в Python
  9. Возврат нескольких значений
  10. Работа с контекст-менеджером «with»
  11. Создание именованных кортежей в Python
  12. Оператор (*) в Python
  13. Профилирование кода на Python
  14. Работа с датой и временем в Python
  15. Генераторы списков
  16. Сортировка списка по индексам
  17. Метод __index__ в Python
  18. Сравнение def и lambda в Python
  19. Работа с defaultdictами в Python
  20. Функция zip() — объединение последовательностей
  21. Создание списка через итерацию
  22. JMESPath в Python
  23. Python enumerate() использование
  24. Использование модуля __future__
  25. Импорт модулей в Python 3.12
  26. Метод is_absolute() для PurePath
  27. Python OrderedDict и fromkeys() — работа с словарями
  28. Мониторинг работы программы Py-spy
  29. Атрибуты массивов в Numpy
  30. Оператор is в Python
  31. Нахождение хеша для бесконечности и NaN в Python
  32. Разделение строки с помощью re.split()
  33. Метод gt в Python
  34. Регулярные выражения: метод match
  35. Метод ipow для возведения в степень
  36. Ограничение ресурсов в Python
  37. Функция product() в Python
  38. Управление асинхронными задачами с помощью Semaphore
  39. Итерация по копии коллекции
  40. Избегание циклических зависимостей классов в Python
  41. Получение идентификатора объекта в памяти
  42. Защита данных в Python
  43. Создание новых списков
  44. Основы работы с os
  45. Определение индекса элемента списка

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