Курс 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. Оператор == в Python
  2. Анонимные функции в Python
  3. Фильтрация списка от «ложных» значений
  4. Просмотр атрибутов и методов класса
  5. Использование метода lower()
  6. Особенности множеств в Python
  7. Работа с контекстным менеджером Pool
  8. Отладка регулярных выражений в Python
  9. Установка и использование emoji
  10. Объединение списков в Python
  11. Преобразование списка в словарь через генератор
  12. Переменные в Python
  13. Проблема с изменяемыми аргументами
  14. Игра «Камень, ножницы, бумага» — Python
  15. Декораторы в Python
  16. История Python
  17. Python: цикл for и оператор присваивания
  18. Декодирование строк в Python
  19. Объединение списков с использованием itertools.chain
  20. Документирование функций в Python
  21. Работа с модулем random
  22. Измерение времени выполнения
  23. Lambda-функция в Python: использование с map() и sum()
  24. Numpy: объединение массивов
  25. Списки в Python: основы
  26. Работа с SQLite в Python
  27. Активация Matplotlib в Jupyter
  28. Транспонирование матрицы в Python
  29. Измерение времени выполнения кода
  30. Вывод переменной и строки в Python
  31. Изменение элемента списка
  32. Цепные операции в Python
  33. Просмотр атрибутов и методов класса
  34. Имена объектов в Python
  35. Конкатенация строковых литералов
  36. Профилирование данных с Pandas.
  37. Enum в Python
  38. Преобразование строк в числа с плавающей запятой
  39. Замена переменных в Python
  40. Импорт модулей и пакетов в Python
  41. Возврат нескольких значений
  42. Разработка Telegram-ботов
  43. Определение функций с необязательными аргументами
  44. Функции высшего порядка в Python
  45. Magic Commands — улучшение работы с Python
  46. Тайное преобразование типа ключа
  47. Операции с массивами в NumPy
  48. Поиск HTML-элементов с BeautifulSoup

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