Курс 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. Работа с файлами в Python
  3. Работа с Path в Python
  4. Работа с файлами в Python
  5. JSON в Python: модуль, dump, dumps, load
  6. Переопределение метода delitem в Python
  7. Лимиты на ресурсы Python
  8. Установка максимального количества цифр
  9. Получение ID процесса
  10. Генерация тестовых данных с factory_boy
  11. Функция format() в Python
  12. Использование super() в Python
  13. Обработка элементов в Python
  14. Установка библиотек в Python
  15. Атрибуты объекта в Python
  16. Проверка файла .py на синтаксис.
  17. Расширение информации об ошибке в Python
  18. Python Enum Weekday Usage
  19. Импорт модулей и пакетов в Python
  20. Оптимизация параметров в Python
  21. Отладка регулярных выражений в Python
  22. Генерация случайных чисел Python
  23. Комментарии в Python
  24. Принципы LSP и ISP в Python
  25. Имена объектов в Python
  26. Перезапуск ячейки в Jupyter Notebook с dostoevsky
  27. f-строки в формате строк
  28. Метод join() для объединения элементов
  29. Метод __irshift__ для Python
  30. Конкатенация строковых литералов
  31. Условные выражения в Python
  32. Вывод букв строки в Python
  33. Основные операции с Numpy
  34. Профилирование с cProfile
  35. Возведение в квадрат с помощью itertools
  36. Оценка точности модели
  37. Передача аргументов в Python
  38. Списковый компрехеншен.
  39. Создание коллекций из генератора
  40. Добавление Progressbar в Python
  41. Метод join() для объединения элементов строки
  42. Работа с Colorama
  43. Лямбда-функции в Python
  44. Запрос пароля с помощью getpass
  45. Переопределение оператора % для объектов
  46. Возврат нескольких значений
  47. Фильтрация элементов с помощью islice
  48. Отправка HTTP-запросов в Python

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