Курс 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. Инициализация структур данных
  2. Функции с необязательными аргументами
  3. Строковое представление объектов
  4. Переопределение метода __floordiv__
  5. Удаление элемента по индексу в Python
  6. Объединение словарей в Python
  7. Экспорт данных с помощью writefile
  8. Получение частей дроби
  9. Преобразование списка в словарь через генератор
  10. Метод rmatmul для обратного матричного умножения
  11. Сортировка элементов в Python
  12. Python enumerate() функции
  13. Округление чисел с помощью round
  14. Множественное присваивание в Python
  15. Проверка файла .py на синтаксис.
  16. Проблема сравнения словарей
  17. Запуск асинхронной корутины
  18. Python: изменяемые и неизменяемые коллекции
  19. Работа с массивами в Numpy
  20. Управление ресурсами с контекстными менеджерами
  21. Импорт и использование модулей в Python
  22. Метод __ilshift__ для битового сдвига влево
  23. Создание генераторов
  24. Импорт модулей в Python 3.12
  25. Цепные операции в Python
  26. Функция divmod() в Python
  27. Работа с кортежами в Python
  28. Concrete Paths в Python
  29. Метод setitem в Python
  30. Метод pos в Python
  31. Удаление дубликатов в pandas
  32. Классы данных в Python
  33. Форматирование данных с помощью pprint
  34. Работа с timedelta
  35. Регулярные выражения: метод match
  36. Поиск наиболее частого элемента в списке
  37. Подсчет часто встречающихся элементов
  38. Импорт объектов из модулей
  39. Метод rsub для пользовательских чисел
  40. Оформление кода по PEP 8
  41. Хранение данных с помощью dataclasses
  42. Вложенные циклы в Python
  43. Ограничение итераций в Python
  44. Функция zip() в Python
  45. Измерение времени выполнения в Python
  46. Обновление данных через PUT запрос
  47. Просмотр внешнего файла в Python
  48. Итерация по итерируемым объектам
  49. Логические значения в Python

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