Курс 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. Метод eq для сравнения объектов
  3. Метод ipow для возведения в степень
  4. Анализ кода — Python
  5. Установка и загрузка Instaloader
  6. Блок else в Python
  7. Python Метод del.
  8. Множественное назначение в Python
  9. Метод invert для побитового отрицания
  10. Разделение строки с помощью split()
  11. Многопоточность в Python
  12. ROT13 Шифр Цезаря в Python
  13. Функциональное программирование в Python
  14. Удаление символа из строки
  15. Модуль xkcd: загрузка комиксов
  16. Импорт модулей и пакетов в Python
  17. Копирование словарей и списков в Python
  18. Создание именованных кортежей в Python
  19. Python: Splat-оператор и splatty-splat
  20. Замер времени выполнения кода
  21. Функция reduce() в Python
  22. Проверка условий: all и any
  23. Функция enumerate в Python
  24. Множественные конструкторы в Python
  25. Заказ карты Тинькофф Black
  26. Проверка типов с помощью isinstance
  27. Функция eval() в Python
  28. Python 3.12: переиспользование кавычек
  29. Работа с NumPy
  30. Асинхронное программирование с asyncio
  31. Progress с библиотекой tqdm
  32. Обработка ошибок в JSON данных
  33. Роль ключевого слова self
  34. Определение имен функций
  35. Логирование с Logzero
  36. Вложенные генераторы в Python
  37. Функция enumerate() в Python
  38. Карта бомбоубежищ в Москве и Питере
  39. Взаимодействие с sys
  40. Установка переменной среды в Python
  41. Метод title() в Python
  42. Представление бесконечности в Python
  43. Сравнение def и lambda в Python
  44. Отладка утечек памяти в Python

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