Курс 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. Извлечение данных из JSON
  2. Декораторы с аргументами
  3. Установка максимального количества цифр
  4. Курс по дообучению ChatGPT
  5. Структура строк в Python
  6. Декоратор проверки активности
  7. split() — разделение строки
  8. Отправка POST запроса на сервер.
  9. Работа с временем в Python
  10. Измерение времени выполнения с помощью time
  11. Объявление переменных в Python
  12. Удаление элемента из списка в Python
  13. Получение комбинаций в Python
  14. Обработка ошибок в Python
  15. Аргументы *args и **kwargs
  16. Функция format() в Python
  17. Нахождение разницы между списками в Python
  18. Перевернуть список в Python
  19. Порядок операций в Python
  20. Комментарии в Python
  21. Визуализация пропусков данных
  22. Оператор is в Python
  23. Установка и использование библиотеки google
  24. Работа с географическими данными.
  25. Преобразование Word в PDF с Spire.Doc
  26. Логические значения в Python
  27. Комплексные числа в Python
  28. Создание генераторов
  29. Генерация случайных данных в NumPy
  30. Python enumerate() использование
  31. Работа с модулем os в Python
  32. Переворот строки с использованием цикла
  33. Работа с CSV файлами в Python
  34. Метод pop() списка
  35. Работа с deque в Python
  36. Роль ключевого слова self
  37. Обновление шаблона base.html
  38. Лямбда-функции в Python
  39. Функции-генераторы в Python
  40. Определение объема памяти объекта
  41. Форматирование данных с помощью pprint
  42. Нахождение пересечения множеств
  43. Оператор in для проверки наличия элемента

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