Курс 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. Отправка POST-запроса в REST API
  2. %pinfo: получение информации об объекте
  3. Метод split() в Python
  4. Таймер обратного отсчета
  5. Удаление знаков препинания в Python
  6. Метод join() для объединения строк
  7. Оператор «and» в Python
  8. Запуск асинхронной корутины
  9. Регулярные выражения в Python
  10. Регулярные выражения: метод match
  11. Группы исключений в Python
  12. Создание пользовательской коллекции в Python
  13. Перевод двоичного кода в целое число
  14. Замена символов в Python
  15. Переменная с нижним подчеркиванием
  16. Получение текущей даты и времени
  17. Декораторы с аргументами
  18. Пропуск строк в файле с itertools
  19. Распаковка аргументов в Python
  20. Комментарии в Python
  21. Конвертация коллекций в Python
  22. Генераторные функции в Python
  23. Оператор обр. импликации
  24. Работа с многоуровневыми словарями в Python
  25. Работа с изображениями Pillow
  26. Lambda Functions in Python
  27. Удаление дубликатов в pandas
  28. Перегрузка операторов в Python
  29. Переворот строки
  30. Декодирование строк в Python
  31. Функция eval() в Python
  32. Инициализация структур данных
  33. Многострочные комментарии в Python
  34. Функция zip() в Python
  35. Поиск всех индексов подстроки
  36. F-строки в Python 3.8
  37. Библиотека funcy: удобные утилиты
  38. Сравнение строк в Python
  39. Метод __int__ в Python
  40. Импортирование в Python
  41. Модуль pprint: улучшение вывода данных
  42. Определение объема памяти объекта
  43. Функция map() в Python
  44. Функция findall() для поиска вхождений строки
  45. Работа с комплексными числами в Python
  46. Управление ресурсами в Python
  47. Библиотека sh: использование команд bash в Python
  48. Работа с JSON в Python

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