Курс 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. Загрузка постов Instagram
  2. Удаление эмодзи с помощью pandas
  3. Функции min(), max(), sum()
  4. Удаление файлов и папок в Python
  5. Расчет времени выполнения кода
  6. Операция += для списков
  7. Замена подстроки
  8. Проверка запуска скрипта или импорта модуля
  9. Работа с Enum в Python3.
  10. JSON-esque в Python
  11. Списковое включение в Python
  12. Объединение кортежей в Python
  13. Измерение потребления памяти при сортировке
  14. Объединение словарей в Python
  15. Форматирование строк в Python
  16. Операции с датами в Python
  17. Установка Python3.7 и PIP
  18. Создание инструмента обнаружения плагиата
  19. Сравнение строк в Python
  20. Работа с датами в Python
  21. Статическая типизация в Python
  22. HTTP-запросы с библиотекой Requests
  23. Отправка HTTP-запросов в Python
  24. Возврат значений из генератора
  25. Метод join() для объединения элементов строки
  26. Сортировка HTML-элементов
  27. Перегрузка операторов в Python
  28. Разделение строки с помощью split()
  29. capitalize() — изменение регистра первого символа строки
  30. Оператор in в Python
  31. Python: изменяемые и неизменяемые коллекции
  32. Основы работы с os
  33. Подсчет количества элементов в списке
  34. Типы возвращаемых значений в Python
  35. Декораторы классов
  36. Namedtuple в Python
  37. Итерация по итерируемым объектам
  38. Метод rsub в Python: расширение функциональности вычитания
  39. Приоритет операций в Python
  40. Оператор объединения словарей
  41. Создание GUI с Tkinter: Entry
  42. Оператор in и not in в Python
  43. Создание .exe файла с pyinstaller
  44. Работа с PosixPath() в Python

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