Курс 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. UserString в Python
  3. Оператор Walrus в Python 3.8
  4. Установка и использование pyshorteners
  5. Запрос пароля с помощью getpass
  6. Установка и использование Python-dateutil
  7. PUT запрос для обновления данных
  8. Запуск файлового сервера
  9. Изменение списка срезом
  10. Генераторы по генератору
  11. Сравнение def и lambda функций в Python
  12. Библиотека schedule: планировщик задач
  13. Сумма элементов списка
  14. Инверсия списка/строки в Python
  15. Синтаксис переменных цикла в Python
  16. Копирование списков в Python
  17. Функции map, filter, reduce
  18. Проверка условий в Python
  19. Названия переменных
  20. Итерация по итерируемым объектам
  21. Операторы сравнения в Python
  22. Подсчет вхождений элементов
  23. Обрезка изображения с Pillow
  24. Транспонирование матрицы
  25. Удаление дубликатов в pandas
  26. Сортировка элементов в Python
  27. Решатель судоку на Python с pygame
  28. Декораторы с @wraps
  29. PATCH-запрос с библиотекой requests
  30. Python: отсутствие точек с запятыми
  31. Counter() — подсчет элементов
  32. Python 3.12: переиспользование кавычек
  33. Блок else в циклах Python
  34. Работа с Telegram API на Python
  35. Удаление дубликатов из списка
  36. Декоратор для группы пользователей в Django
  37. Сортировка и обратный порядок
  38. Символ подчеркивания в Python
  39. Возврат нескольких значений
  40. Работа с комплексными числами
  41. Модуль antigravity: генерация координат
  42. Управление пакетами с pip
  43. Извлечение новостей с newspaper3k
  44. Поиск уникальных элементов строкой в Python
  45. Замыкания в Python
  46. Вывод переменной и строки в Python
  47. Оптимизация поиска в словарях

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