Курс 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. Модуль xkcd: загрузка комиксов
  2. Комментарии в Python
  3. Python Метод sleep() из time
  4. Установка random seed в Python
  5. Хэш-функции и метод цепочек
  6. Возврат значений из генератора
  7. Поиск уникальных и повторяющихся элементов
  8. Оптимизация гиперпараметров в Python
  9. Работа с атрибутом dict
  10. Работа с классами данных
  11. Любовь к Python
  12. Создание уникального проекта
  13. Введение в PyTorch
  14. Печать в одной строке
  15. Поиск подстроки в строке
  16. Руководство по использованию Colorama
  17. Разделение строки с регулярными выражениями
  18. Срез списка в Python
  19. Разделение строк в Python
  20. Обработка аргументов Python
  21. Генератор списка в Python
  22. Pillow: работа с изображениями
  23. Поиск повторов в списке
  24. Пропуск строк в файле с itertools
  25. Удаление элементов во время итерации
  26. Переопределение унарных операторов
  27. Область видимости переменных
  28. Оператор space-invader
  29. Оптимизация создания строк
  30. Метод append() для списка
  31. Логирование с Logzero
  32. Функция format() в Python
  33. Дизассемблирование Python кода
  34. Создание лямбда-функций
  35. Оптимизация памяти с slots
  36. Обработка исключений
  37. Непрерывная проверка в Python
  38. Обработка элементов в Python
  39. Поиск подстроки в строке
  40. Проверка существования переменной с оператором :=
  41. Сериализация объектов в Python
  42. Каналы Senior: Python, Java, Frontend, SQL, C++
  43. Философия Python
  44. Копирование объектов в Python
  45. Реализация операции -= для пользовательского класса
  46. Закрытие файла в Python
  47. Работа с модулем bisect

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