Курс 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. Вставка переменных в шаблоны Flask
  2. Функция с **kwargs в Python
  3. Роль object и type в Python
  4. Область видимости переменных
  5. Поиск email
  6. Форматирование кода на Python
  7. Срезы в Numpy
  8. Хеширование паролей с солью
  9. Функция enumerate в Python
  10. Разделение строк методом split()
  11. Создание пустых функций и классов в Python
  12. Генерация фальшивых данных с Faker
  13. Копирование словарей и списков в Python
  14. Переопределение метода __pow__
  15. Форматирование строк в Python
  16. Enum в Python
  17. f-строки в формате строк
  18. Использование метода lower()
  19. Декораторы в Python
  20. Группы исключений в Python
  21. Python: динамическая типизация и проверка типов
  22. Повторение элементов в Python
  23. Переопределение метода sub
  24. Python: цикл for и оператор присваивания
  25. F-строки в Python 3.8
  26. Получение атрибутов и методов класса
  27. Генераторы списков в Python
  28. Оператор морж в Python 3.8
  29. Создание уникального проекта
  30. Создание новых списков в Python
  31. Работа с модулем random
  32. Создание и инициализация объектов
  33. Модуль inspect: получение информации о объектах
  34. Лямбда-функции в defaultdict
  35. Генераторы в Python
  36. Измерение времени выполнения с помощью time
  37. Реверс строки и списка в Python.
  38. Игра «Угадывание чисел»
  39. Функция findall() для поиска вхождений строки
  40. Функции map() и reduce() в Python
  41. Оптимизация строк в Python
  42. Улучшенные подсказки для импорта в Python 3.12
  43. Извлечение аудио из видео
  44. Python enumerate() использование
  45. Запуск внешних программ с subprocess
  46. Объединение списков в Python
  47. Функция divmod() в Python

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