Курс 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. Нахождение самого длинного слова в списке с помощью max
  3. Замена подстроки
  4. Иерархия классов в Python
  5. Работа с модулем glob в Python
  6. Конструктор в Python
  7. Сортировка и обратный порядок
  8. Решение переменной Шредингера
  9. Генераторы словарей и множеств
  10. Работа с переменными в Python
  11. Распаковка аргументов в Python
  12. Ускорение выполнения кода в Python
  13. Асинхронный код в Python
  14. Создание новых списков в Python
  15. Тестирование времени с Freezegun
  16. Работа с SQLite в Python
  17. Удаление дубликатов из списка с помощью dict.fromkeys
  18. Структура строк в Python
  19. Работа с датой и временем в Python
  20. Логический оператор «and» в Python
  21. Методы в Python
  22. Расширение информации об ошибке в Python
  23. Работа со строками в Python
  24. Сравнение объектов в Python
  25. Работа с датой и временем в Python
  26. Сортировка в Python
  27. Атрибуты класса и экземпляра
  28. Метод __float__ в Python
  29. Отношения подклассов в Python
  30. Очистка данных с Pandas
  31. Взаимодействие с внешними процессами в Python
  32. История Python
  33. Метод init в Python
  34. Numpy: использование Ellipsis
  35. Компиляция регулярных выражений
  36. Поиск файлов по шаблону
  37. Тип данных TypeVarTuple
  38. Декораторы в Python
  39. Создание словарей в Python
  40. Возврат нескольких значений
  41. Переопределение метода __rshift__
  42. Модуль math: основные функции
  43. Избегайте пустого списка
  44. Имена объектов в Python
  45. Работа с IP-адресами в Python

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