Курс Python → Генераторы в Python

Генераторные функции — это мощный инструмент в Python, который позволяет создавать итераторы с минимальным использованием памяти. Вместо того чтобы создавать список или кортеж сразу со всеми значениями, генераторная функция генерирует значения по мере необходимости. Это особенно полезно, когда у вас есть большой объем данных, которые необходимо обработать поэлементно.

Для создания генераторной функции в Python используется ключевое слово yield. Когда интерпретатор Python встречает оператор yield в функции, он приостанавливает выполнение функции и возвращает значение. При следующем вызове функции выполнение продолжается с того же места, где оно было приостановлено, и продолжается до следующего оператора yield.


def my_generator():
    for i in range(5):
        yield i

gen = my_generator()
for value in gen:
    print(value)

В этом примере функция my_generator является генераторной функцией, которая возвращает числа от 0 до 4. При вызове функции my_generator() создается объект-генератор, который можно использовать в цикле for для обхода всех значений, сгенерированных функцией.

Использование генераторных функций особенно полезно в случаях, когда необходимо применить серию фильтров или обработчиков к элементам списка. Вместо того чтобы создавать промежуточные списки с отфильтрованными значениями, можно использовать генераторы для ленивой обработки данных, что позволяет сэкономить память и улучшить производительность.

Твои коллеги будут рады, поделись в

Автор урока

Дмитрий Комаровский
Дмитрий Комаровский

Автоматизация процессов
в КраснодарБанки.ру

Другие уроки курса "Python"

  1. Профилирование с cProfile
  2. Визуализация пропусков данных
  3. Структура строк в Python
  4. Python: библиотеки и функции
  5. Комментарии в Python.
  6. Распаковка аргументов в Python
  7. Метод join() для объединения элементов
  8. Создание списков в Python
  9. Разработка Telegram-ботов
  10. Регистрация на TenChat
  11. Измерение времени выполнения кода
  12. Замена подстроки
  13. Поиск email
  14. Участие в LP стейкинге Waves
  15. Принципы LSP и ISP в Python
  16. Контекстный менеджер в Python
  17. Путь к интерпретатору Python
  18. Кортеж в Python: создание, доступ, изменение
  19. Работа с NumPy.linalg
  20. Flask — веб-фреймворк Python
  21. Сериализация данных в JSON с помощью json.dumps
  22. Логические операторы в Python
  23. Форматирование строк в Python
  24. Лямбда-функции в Python
  25. Объединение, распаковка и деструктуризация
  26. Эффективная конкатенация строк в Python
  27. Разделение строки на пары ключ-значение.
  28. Работа с временем в Python
  29. Запуск асинхронной корутины
  30. Создание генераторов
  31. Конвертация коллекций в Python.
  32. Функция all() в Python
  33. Работа с массивами в Numpy
  34. Оператор «is not» в Python
  35. Получение комбинаций в Python
  36. Оператор continue в Python
  37. Хэш-функции в Python
  38. Добавление цвета в консоли
  39. Сравнение объектов в Python
  40. Сериализация объектов в Python
  41. Типы возвращаемых значений в Python
  42. Генерация чисел с range()
  43. Python и Монти Пайтон
  44. Склеивание строк через метод join()
  45. Python UserString — создание подклассов строк
  46. Создание вложенного генератора
  47. Форматирование объектов с модулем pprint
  48. Экспорт функций в Python
  49. Именованные срезы в Python

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