Курс 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. Аннотации типов в Python
  3. Применение команды break
  4. Проверка элемента в множестве.
  5. Округление дробей в Python
  6. Декораторы для регистрации функций
  7. Лямбда-функции в цикле
  8. Создание и удаление объектов
  9. Модуль inspect: получение информации о объектах
  10. CLI-инструмент howdoi
  11. Изменение списка срезами
  12. Переворот строки
  13. Удаление дубликатов с помощью множеств
  14. Отладка утечек памяти в Python
  15. Обучение модели с указанием эпох
  16. Конвертация изображений в PDF
  17. Показ всплывающих окон Tkinter
  18. Документация функции help() в Python
  19. Метод rsub в Python: расширение функциональности вычитания
  20. Хеширование паролей с использованием salt
  21. Работа с кортежами в Python
  22. Лямбда-функции в Python
  23. Генератор данных в Keras
  24. Python enumerate() функции
  25. Структуры данных в Python
  26. Python Поверхностное Копирование
  27. Создание списка дат
  28. Управление ресурсами с контекстными менеджерами
  29. Dict Comprehension в Python
  30. Ветвление выражения в Python
  31. Комплексные числа в Python
  32. Расчет времени выполнения программы
  33. Метод rlshift для битового сдвига
  34. Работа со списками
  35. Установка и обучение ChatterBot
  36. Область видимости переменных
  37. Форматирование строк в Python
  38. Оператор умножения для вектора
  39. Упрощение работы с JSON-данными в Python
  40. Множественное наследование в Python
  41. Работа с JSON данными в Python
  42. Удаление falsy-значений из списка с помощью filter
  43. Поиск элементов BeautifulSoup
  44. Работа с файлами в Python
  45. Преобразование чисел в Python

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