Курс 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. Основные операции с библиотекой Numpy
  2. Определение наиболее частого элемента с помощью collections.Counter
  3. Docstring в Python
  4. Автоматизация с Python
  5. Работа с defaultdictами в Python
  6. Работа с CSV файлами в Python
  7. Лямбда-функции в Python
  8. Итераторы в Python
  9. Генераторы списков
  10. Defaultdict в Python
  11. Сортировка элементов в Python
  12. Список методов и атрибутов
  13. Ускорение выполнения кода в Python
  14. Функции all и any в Python
  15. Python Метод Union Множеств
  16. Присвоение и ссылки
  17. Метод splitlines() для разделения строк
  18. Функция product() в Python
  19. Управление контекстом выполнения
  20. Асинхронное программирование с asyncio
  21. Классы данных в Python
  22. Метод округления чисел
  23. Использование двоеточия в Python
  24. Импорт модулей в Python 3.12
  25. Работа с PosixPath() в Python
  26. Изменение регистра данных
  27. Dict Comprehension в Python
  28. Генерация случайных чисел в Python
  29. Наследование в программировании
  30. Метод invert для побитового отрицания
  31. Копирование в Python
  32. Объединение списков в Python
  33. Применение функции к каждому элементу списка
  34. Генераторы в Python
  35. lru_cache оптимизация функций
  36. Генераторы в Python
  37. Поиск частого элемента
  38. Принцип одной функции
  39. Возврат нескольких значений из функции
  40. Группировка элементов Python
  41. Перемещение и удаление файлов в Python
  42. Работа с Enum в Python3.
  43. Установка и использование TensorFlow
  44. Класс Counter() для подсчета элементов
  45. Функция reduce() из модуля functools

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