Курс 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. Метод Enumerate() для списков
  2. EMOT преобразование эмодзи в текст
  3. Работа со списками
  4. Конкатенация списков в Python
  5. Подсчет элементов в списке с Counter
  6. Работа с библиотекой xkcd
  7. Сериализация данных в JSON с помощью json.dumps
  8. Объединение списков в Python
  9. Создание новых списков в Python
  10. Область видимости переменных
  11. Метод remove() для удаления элемента из списка
  12. Форматирование строк в Python
  13. Запуск внешнего кода в Jupyter
  14. Цикл for в Python
  15. Объединение итераторов
  16. Методы shutil для работы с файлами
  17. Удаление дубликатов из списка
  18. Работа с каталогами в Python
  19. Определение локальных переменных в Python
  20. Повторение элементов в Python
  21. Удаление элемента из списка в Python
  22. Отправка POST запроса на сервер.
  23. Блок else в обработке исключений
  24. Создание вложенных циклов for
  25. Настройка шрифта и цвета в Tkinter
  26. Структурирование данных с Pydantic
  27. Работа со строками в Python
  28. Многострочные комментарии в Python
  29. Комментарии в Python.
  30. Вычисление разности множеств в Python
  31. Парсинг веб-страниц с Beautiful Soup
  32. Отношения подклассов в Python
  33. Присоединение элементов коллекции
  34. Принципы программирования
  35. Фильтрация списков с itertools
  36. Работа с комплексными числами
  37. Нан-рефлексивность в Python
  38. Подсчет элементов в Python
  39. Модуль math: константы π и e
  40. Структуры данных в Python
  41. Взаимодействие с sys
  42. Декораторы в Python
  43. Создание пользовательской коллекции в Python
  44. Строковое представление объектов
  45. Фильтрация элементов с помощью islice
  46. Работа с датой и временем в Python

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