Курс 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. Форматирование вывода с F-строками
  2. Закрытие файла в Python
  3. Обратный список чисел
  4. Оператор continue в Python
  5. Защита данных в Python
  6. Мониторинг работы программы Py-spy
  7. Python Метод del.
  8. Удаление дубликатов в pandas
  9. Пространство имен в Python
  10. Распаковка элементов массива
  11. Управление памятью в Python
  12. Контроль точности вывода чисел
  13. Метод __iand__ для пользовательских классов
  14. Работа со словарями
  15. Работа с буфером обмена на Python
  16. Метод getitem для доступа к элементам последовательности
  17. Оптимизация гиперпараметров в Python
  18. Модуль Antigravity в Python 3
  19. split() без разделителя
  20. Оценка точности модели
  21. Метод rename() для переименования файлов и каталогов
  22. Сравнение неупорядоченных списков
  23. Генерация резюме в Gensim
  24. Defaultdict в Python
  25. Методы __repr__ и __str__ в Python
  26. Метод setdefault() в Python
  27. Оператор «not» в Python
  28. Python 3.12: Псевдонимы типов
  29. Преобразование многоуровневого словаря
  30. Методы Python для работы с данными
  31. Создание namedtuple из словаря
  32. Оформление кода на Python
  33. Вывод букв строки в Python
  34. Метод join для наборов
  35. Преобразование символов в нижний регистр
  36. Defaultdict в Python
  37. Удаление дубликатов с помощью множеств
  38. Обработка ошибок в Python
  39. Модуль xkcd: добавление юмора в Python
  40. Создание виртуальной среды
  41. Функции высшего порядка в Python
  42. Выключение компьютера с помощью Python
  43. Метод rpow в Python
  44. Метод rsub в Python: расширение функциональности вычитания
  45. Применение функции к списку
  46. Создание именованных кортежей в Python

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