Курс 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. Вычисление натуральных логарифмов в NumPy
  2. Отправка POST запроса на сервер.
  3. Python enumerate() функции
  4. Генерация UUID в Python
  5. Принцип одной функции
  6. Обработка ошибок в Python
  7. Проверка типа объекта в Python
  8. Списковое включение в Python
  9. Стать Python-разработчиком
  10. Модуль Operator в Python
  11. Генератор данных в Keras
  12. Декораторы в Python
  13. Изменение регистра данных
  14. Объединение словарей в Python
  15. Удаление дубликатов из списка с помощью dict.fromkeys
  16. ChainMap.new_child() — добавление нового словаря
  17. Отправка HTTP-запросов в Python
  18. Участие в сообществе @selectel
  19. Распаковка элементов массива
  20. TypedDict для kwargs в Python 3.12
  21. Документация функции help() в Python
  22. Просмотр атрибутов и методов класса
  23. Извлечение чисел из текста
  24. Numpy: объединение массивов
  25. Нахождение самого длинного слова в списке с помощью max
  26. Руководство по библиотеке pydantic
  27. Создание объекта timedelta
  28. Импорт классов из другого файла
  29. Логирование с Logzero
  30. Разработка Telegram-ботов
  31. Делегирование в Python
  32. Создание пользовательской коллекции в Python
  33. Хеширование паролей с солью
  34. Функция sleep() в Python
  35. Обмен значений переменных в Python
  36. Генерация QR-кодов с библиотекой qrcode
  37. Особенности множеств в Python
  38. Список переменных в Python
  39. Метод split() в Python
  40. Импорт объектов из модулей
  41. Извлечение новостей с помощью newspaper3k
  42. Проверка дубликатов в Python
  43. Создание графиков в терминале
  44. Удаление эмодзи с помощью pandas
  45. Функции all и any в Python
  46. TON Smart Challenge #2: участие и подготовка
  47. Сравнение def и lambda функций в Python

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