Курс Python → Генераторы в Python

Генераторы (generators) — это мощный инструмент в Python, который позволяет эффективно обрабатывать большие объемы данных, не загружая всю информацию в память. Вместо того, чтобы хранить все значения в списке или кортеже, генератор поочередно возвращает элементы, когда они запрашиваются. Это особенно полезно, когда вам необходимо обработать большой объем данных по частям или когда вы не знаете заранее, сколько элементов будет обрабатываться.

Для создания генератора в Python используется ключевое слово yield. Когда функция содержит yield, она становится генератором, который можно вызывать итеративно. В примере выше мы создали генератор square_numbers, который возвращает квадраты чисел из переданного списка. При каждом вызове генератора он возвращает следующее значение, а не все значения сразу.


def square_numbers(nums):
    for num in nums:
        yield num**2

my_nums = [1, 2, 3, 4, 5]
my_generator = square_numbers(my_nums)

for num in my_generator:
    print(num)

Как видно из приведенного кода, мы можем использовать генераторы в циклах, чтобы поочередно получать значения. Это позволяет экономить память и ресурсы компьютера, так как не нужно хранить все значения в памяти одновременно. Генераторы также удобны для работы с потоками данных, обработки файлов построчно и других задач, где требуется эффективное использование памяти.

Использование генераторов в Python помогает улучшить производительность программы и сделать код более читаемым и компактным. Вместо создания итераторов или временных списков, можно использовать генераторы для удобной обработки данных. Помните, что генераторы могут быть бесконечными, что позволяет обрабатывать поток данных без ограничений по объему.

Твои коллеги будут рады, поделись в

Автор урока

Дмитрий Комаровский
Дмитрий Комаровский

Автоматизация процессов
в КраснодарБанки.ру

Другие уроки курса "Python"

  1. Счетчик ссылок в Python
  2. Получение ID процесса
  3. Python: библиотеки и функции
  4. Counter() — подсчет элементов
  5. Удаление элемента по индексу в Python
  6. Работа с Path в Python
  7. Поиск шаблона в начале строки
  8. Работа с коллекциями Python
  9. enumerate() в Python для работы с индексами
  10. Библиотека sh: использование команд bash в Python
  11. Отступы в Python
  12. Атрибуты массивов в Numpy
  13. Объединение итераторов
  14. Работа со словарями Python
  15. Конкатенация строк в Python
  16. TypedDict для kwargs в Python 3.12
  17. PrettyTable: создание таблицы
  18. Объединение списков в Python
  19. Компиляция регулярных выражений
  20. Решение переменной Шредингера
  21. Работа со списками
  22. Тестирование функции сложения
  23. Инициализация объекта
  24. Запрос пароля с помощью getpass
  25. Сортировка с помощью параметра key
  26. Ключевое слово global в Python
  27. Отладка утечек памяти в Python
  28. Возведение в квадрат с помощью itertools
  29. Переворот строки с использованием цикла
  30. Работа со временем в Python
  31. ChainMap.new_child() — добавление нового словаря
  32. Оператор «or» в Python
  33. Проверка подстроки в строке с помощью in
  34. Создание копии списка в Python
  35. Python Менеджер контекста
  36. Список импортированных модулей в Python
  37. Работа с CSV файлами в Python
  38. Выражения-генераторы в Python
  39. Виртуальное окружение Python
  40. Проблемы с dict в Python
  41. Создание задания в Cron
  42. Извлечение аудио из видео
  43. Модуль pprint
  44. Цикл for в Python
  45. Базовые объекты Python
  46. Работа с CSV файлами

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