Курс 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. Аргументы *args и **kwargs
  2. Объединение словарей в Python
  3. Мощь вложенных функций в Python
  4. Преобразование данных в Python
  5. Удаление дубликатов с сохранением порядка с помощью dict.fromkeys
  6. Тип CodeType в Python.
  7. Импорт объектов из модулей
  8. Проверка однородности элементов списка
  9. Создание вкладок с TKinter
  10. Методы сравнения множеств
  11. Метод ior для битовых операций
  12. Обработка ошибки IndexError
  13. Отладка в командной строке
  14. Объединение списков в Python
  15. Функции с необязательными аргументами
  16. Оператор zip в Python
  17. Преобразование чисел в слова
  18. Объединение коллекций в Python
  19. Сериализация и десериализация объектов
  20. Создание копии списка в Python
  21. Обмен значений переменных в Python
  22. Инвертирование словаря
  23. Работа с изменяемыми коллекциями
  24. Генераторные функции в Python
  25. Получение списка кортежей из словаря
  26. Инициализация объекта
  27. Управление сессиями в Python
  28. Копирование в Python
  29. Нахождение максимального значения и его индекса в списке
  30. Генераторы и сеты в Python
  31. Просмотр внешних файлов в %pycat
  32. Удаление ссылок в Python
  33. Изменяемые и неизменяемые объекты
  34. Руководство по использованию Colorama
  35. Псевдонимы в Python
  36. Операции с комплексными числами
  37. Расширение операции побитового «и» в Python
  38. Оператор @ для умножения матриц
  39. Поиск подстроки в строке
  40. Преобразование числа в восьмеричную строку
  41. Анонимные функции в Python
  42. Преобразование чисел в Python
  43. Тестирование с unittest
  44. Сравнение def и lambda в Python
  45. Оператор += в Python
  46. Методы classmethod и staticmethod
  47. Создание задания в Cron

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