Курс 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. Работа с collections в Python.
  2. Передача параметров в Python
  3. Отладка регулярных выражений в Python
  4. Структура данных словарь в Python
  5. Работа с кортежами
  6. Переопределение метода len
  7. Работа с множествами в Python
  8. Цикл for в Python
  9. Оператор is в Python
  10. lru_cache оптимизация функций
  11. Проекты на Python
  12. Функция pow() — возвести число в степень
  13. Курс Data Scientist в медицине
  14. Преобразование кортежа в словарь.
  15. Создание и использование ChainMap
  16. Нахождение хеша для бесконечности и NaN в Python
  17. Виртуальные среды в Python
  18. Numpy: объединение массивов
  19. Метод gt в Python
  20. Просмотр внешних файлов в %pycat
  21. Глубокое копирование объектов
  22. Поиск наиболее частого элемента списке
  23. Функции map, filter, reduce
  24. Проектирование Singleton с метаклассом
  25. Аннотации типов в Python
  26. Функция zip() в Python
  27. Возвращение нескольких значений через кортеж или класс
  28. Измерение потребления памяти при сортировке
  29. Получение значений из словарей
  30. Оператор in и not in в Python
  31. Логирование с Logzero
  32. Добавление элементов в список: append() vs extend()
  33. Измерение времени выполнения кода
  34. Установка Home Assistant
  35. Список импортированных модулей в Python
  36. Установка пакетов с помощью pip
  37. Переворот строки с использованием цикла
  38. Генерация случайных чисел в Python
  39. Управление ресурсами в Python
  40. Вычисление натурального логарифма в NumPy
  41. Удаление дубликатов с сохранением порядка с помощью dict.fromkeys
  42. Оператор @ для умножения матриц
  43. Сумма элементов списка
  44. Проверка окончания строки с помощью str.endswith()
  45. Итерации в Python
  46. Взаимодействие с sys
  47. Принципы LSP и ISP в Python

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