Курс 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. Метод split() для разделения строк
  2. Метод округления чисел
  3. Управление памятью в numpy.
  4. Проверка дубликатов в Python
  5. Flask — веб-фреймворк Python
  6. Локальные переменные.
  7. Подсчет частоты элементов с Counter
  8. Присвоение значений переменным в Python
  9. Управление контекстом выполнения кода
  10. Склеивание строк через метод join()
  11. Метод add для класса Vector
  12. Метод rrshift для пользовательских объектов
  13. Именованные срезы в Python
  14. Частичное совпадение ввода
  15. Конкатенация строк в Python
  16. Оптимизация интернирования строк
  17. Метод is_absolute() для PurePath
  18. capitalize() — изменение регистра первого символа строки
  19. Функция findall() для поиска вхождений строки
  20. Получение текущей директории
  21. Функция all() в Python
  22. Обработка исключений в Python 3
  23. Работа с Telegram API на Python
  24. Извлечение аудио из видео
  25. Перегрузка операторов в Python
  26. Удаление символа из строки
  27. Документация функции help() в Python
  28. Метод radd для пользовательских чисел
  29. Генераторы в Python
  30. Подсказки типов в Python
  31. Создание функций с произвольным количеством аргументов
  32. Основы Python за 14 дней
  33. Python: Splat-оператор и splatty-splat
  34. Итерация по копии коллекции
  35. Работа с комбинациями в Python.
  36. Нахождение отличий в списках
  37. Логирование с Loguru
  38. Особенности запятых в Python
  39. Создание копии итератора
  40. Декораторы с аргументами в Python
  41. Пропуск строк в файле с itertools
  42. Ветвление выражения в Python
  43. Поток данных в Python
  44. Defaultdict в Python

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