Курс 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. Модуль Antigravity в Python 3
  2. Проверка списка: any() и all()
  3. Методы classmethod и staticmethod
  4. Поиск шаблона в начале строки
  5. Использование *args
  6. Метод join() для объединения элементов строки
  7. Представление бесконечности в Python
  8. Удаление дубликатов из списка
  9. Python: динамическая типизация и проверка типов
  10. Перемещение и удаление файлов в Python
  11. Регистрация на хакатоне
  12. Работа с collections в Python
  13. Удаление ссылок в Python
  14. Кортеж в Python: создание и использование
  15. Логические значения в Python
  16. Метод enumerate() в Python
  17. Преобразование в float
  18. Оператор in в Python
  19. Закрытие файла в Python
  20. Конструктор в Python
  21. Доступ к локальным переменным
  22. Оптимизация памяти с slots
  23. Работа с многоуровневыми словарями в Python
  24. UserList в Python: Описание и примеры использования
  25. Получение размера объекта с sys.getsizeof()
  26. Дизассемблирование Python кода
  27. Метод gt в Python
  28. Метод get() в Python
  29. Срез в Python
  30. Многострочные строки в Python
  31. Преобразование чисел в восьмеричную строку
  32. Тест скорости набора текста на Python
  33. Разделение строки с помощью split()
  34. Создание лямбда-функций
  35. Разделение строки на пары ключ-значение.
  36. Операторы сравнения в Python
  37. Список импортированных модулей в Python
  38. Расширение информации об ошибке в Python
  39. Чтение и запись TOML-конфигов
  40. Проверка ввода с помощью isdigit
  41. Работа с defaultdictами в Python
  42. Настройка Cron
  43. Комментарии в Python
  44. Создание списков в Python
  45. Метод count в Python: почему count(», ») возвращает 4?

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