Курс 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. Работа с itertools
  3. Работа с контекстными переменными
  4. История Python
  5. Управление фоновыми задачами в Python
  6. Определение объема памяти объекта
  7. Логирование с Logzero
  8. Рациональные числа в Python
  9. Хеширование паролей с использованием salt
  10. Применение функции к каждому элементу списка
  11. Транспонирование матрицы
  12. Структурирование данных с Pydantic
  13. Делегирование в Python
  14. Решение переменной Шредингера
  15. Docstring в Python
  16. Сортировка с помощью key
  17. Преобразование букв в нижний регистр
  18. Модуль xkcd: загрузка комиксов
  19. Проверка дубликатов в Python
  20. Переименование файлов в Python
  21. Python: изменяемые и неизменяемые коллекции
  22. Генераторы данных
  23. Сравнение def и lambda-функций
  24. Отображение графиков в Jupyter с Matplotlib
  25. Создание уникального множества
  26. Переопределение метода delitem в Python
  27. Сглаживание списка
  28. Добавление элементов в список: append() vs extend()
  29. Хэш-функции в Python
  30. Передача параметров в Python
  31. Функция reduce() в Python
  32. Проверка однородности элементов списка
  33. Синтаксис переменных цикла в Python
  34. Модуль future Python
  35. Изменение логики работы с временем
  36. Функция __init__ в Python
  37. Подсчет количества элементов в списке
  38. Создание вкладок с TKinter
  39. Удаление элементов из списка в Python
  40. Экспорт внешнего файла с помощью writefile
  41. Метод join() для объединения строк
  42. Функция с **kwargs в Python
  43. Цепные операции в Python
  44. Именованные срезы в Python
  45. Декораторы в Python

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