Курс 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. Создание коллекций из выражения-генератора
  2. Извлечение аудио из видео
  3. Поиск с библиотекой Google
  4. Множественное наследование в Python
  5. Имена объектов в Python
  6. Метод __getitem__ в Python
  7. Работа с YAML в Python
  8. Переопределение метода xor в Python
  9. Генераторы в Python
  10. Инверсия списков и строк в Python
  11. Метод join для объединения строк
  12. Добавление элементов в список: append() vs extend()
  13. Поиск индексов подстроки
  14. Python Поверхностное Копирование
  15. Поиск кода
  16. Секреты Python
  17. Python Метод sleep() времени
  18. Enum в Python
  19. Сравнение строк в Python
  20. Оператор break в Python
  21. Поиск всех индексов подстроки
  22. Вывод букв строки в Python
  23. Извлечение аудио из видео
  24. Оптимизация памяти с помощью __slots__
  25. Разность множеств
  26. Форматирование данных с помощью pprint
  27. Lambda-функция в Python: использование с map() и sum()
  28. Декоратор total_ordering для класса Point
  29. Игра «Камень, ножницы, бумага» — Python
  30. Работа со словарями
  31. Преобразование текста в нижний регистр
  32. Вычисление разности множеств в Python
  33. Python: Фильтрация списков с помощью filter()
  34. Оператор распаковки в Python
  35. Работа с кортежами в Python
  36. Создание списков в Python
  37. Работа с itertools
  38. Отношения подклассов в Python
  39. Работа с defaultdictами в Python
  40. Удаление первого элемента списка
  41. Генераторы в Python
  42. Синхронизация потоков с time.sleep()
  43. Модуль subprocess: запуск внешних команд
  44. Очистка вывода в Python

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