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

Генераторы в Python — это удобный способ создания последовательностей значений без необходимости хранить их все сразу в памяти. Они позволяют генерировать значения по мере необходимости, что экономит ресурсы и увеличивает производительность программы. Для создания генератора используется ключевое слово yield, которое указывает на точку возврата значения и временную остановку выполнения функции.

Преимущества использования генераторов становятся особенно заметными при работе с большими объемами данных или при генерации бесконечных последовательностей. Например, нам нужно сгенерировать квадраты чисел от 0 до 9. Мы можем создать генератор, который будет выглядеть следующим образом:

def squares_generator():
    for i in range(10):
        yield i**2

squares = squares_generator()
for square in squares:
    print(square)

В данном примере функция squares_generator() является генератором, который при каждой итерации цикла for возвращает квадрат числа i. Таким образом, мы можем получить последовательность квадратов чисел от 0 до 9, не храня все значения в памяти одновременно.

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

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

Автор урока

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

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

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

  1. Переворот строки
  2. Работа с базами данных SQLite
  3. Python Метод del.
  4. Подсказки типов в Python
  5. Управление асинхронными задачами на Python.
  6. Печать календаря в Python
  7. Python: динамическая типизация и проверка типов
  8. Метод rmatmul для обратного матричного умножения
  9. Счетчик ссылок в Python
  10. Получение значений из словарей
  11. Проверка однородности элементов списка
  12. Парсинг веб-страниц с Beautiful Soup
  13. Распаковка элементов последовательности
  14. Логические значения в Python
  15. Фильтрация списка от «ложных» значений
  16. Вычисление фазы комплексного числа
  17. Распаковка аргументов в Python
  18. Работа с датой и временем в Python
  19. TypedDict для kwargs в Python 3.12
  20. Принципы SRP и OCP
  21. Генераторы в Python
  22. Вывод баннеров
  23. Удаление элемента из списка в Python
  24. Округление чисел с помощью round
  25. Автоматизация скриптов на AWS Lightsail.
  26. Оболочка Python
  27. Инициализация структур данных
  28. Профилирование данных с Pandas.
  29. Функция map() в Python
  30. Работа с байтовыми строками в Python
  31. Управление импортом в Python
  32. Метод lt для сортировки объектов
  33. Измерение времени выполнения в Python
  34. Работа с очередями в Python
  35. Декораторы в Python
  36. Python и Юникод: работа с цифрами
  37. Управление IP-адресами через прокси
  38. Удаление файлов в Python
  39. Вывод с переменной через запятую
  40. Оператор is в Python
  41. Работа с модулем random
  42. Проблемы с именами переменных
  43. Группировка элементов в словарь
  44. Разделение функций на этапы
  45. Подписка на каналы разработчиков
  46. Вычисление логарифмов в Python
  47. Применение функции к каждому элементу списка

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