Курс 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. Форматирование строк в Python
  2. Создание графиков в терминале
  3. Подробная информация о %pinfo
  4. Основы работы с базами данных в Python
  5. Оптимизация памяти с slots
  6. Преобразование многоуровневого словаря
  7. Измерение времени выполнения кода
  8. Область видимости переменных
  9. Проверка типов с помощью isinstance
  10. Подписка на Kaspersky Team
  11. Статическая типизация в Python
  12. Метод join() для объединения строк
  13. Обновление и получение данных в SQLite
  14. Проверка однородности элементов списка
  15. Работа с CSV файлами в Python
  16. Фильтры Pillow: NEAREST, BILINEAR, BICUBIC
  17. Создание вкладок с TKinter
  18. Явный импорт переменных
  19. Вычисление разности множеств в Python
  20. Конкатенация списков в Python
  21. Работа с файлами в Python
  22. Работа с файлами в Python
  23. Улучшенные подсказки для импорта в Python 3.12
  24. Обработка элементов в Python
  25. Вывод сложных структур данных с помощью pprint
  26. Работа с файлами и директориями в Python.
  27. Аргументы *args и **kwargs
  28. Подсчет элементов в Python
  29. Создание пользовательской коллекции в Python
  30. Проверка элемента в множестве.
  31. Псевдонимы в Python
  32. Конвертация текстовых чисел с помощью Numerizer
  33. Объединение словарей в Python
  34. Метод get для словаря
  35. Управление асинхронными задачами с помощью Semaphore
  36. Определение основы слова с showballstemmer
  37. Метод enumerate() в Python
  38. Генерация случайных чисел в Python
  39. Оценка точности модели
  40. Работа со строками
  41. Округление дробей в Python
  42. Основные функции и модули Python
  43. Работа с JSON данными в Python
  44. Переопределение метода __pow__
  45. Присвоение значений переменным в Python
  46. Проверка условий в Python

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