Курс 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. Функции range() в Python
  2. Оператор in в Python
  3. Транспонирование 2D-массива с помощью zip
  4. Сохранение и загрузка модели в PyTorch
  5. Метаклассы в Python
  6. ChainMap избыточные ключи
  7. Создание списков в Python
  8. Отладка в командной строке
  9. Однострочники Python
  10. Метод clear для коллекций
  11. Использование двоеточия в Python
  12. UserList в Python: Описание и примеры использования
  13. Принципы программирования
  14. Преобразование вложенного списка
  15. Приоритет операций в Python
  16. Метод append() для списка
  17. Измерение времени выполнения в Python
  18. Работа с библиотекой xkcd
  19. Проверка вхождения подстроки
  20. Декоратор Ajax required
  21. Сортировка в Python
  22. Ввод нескольких значений
  23. Генерация случайных чисел в Python
  24. Преобразование в float
  25. Удаление файлов с shutil.os.remove()
  26. Эффективная конкатенация строк в Python
  27. Возведение в квадрат с помощью itertools
  28. Библиотека itertools: объединение списков
  29. Метод ipow для возведения в степень
  30. Функции map, filter, reduce
  31. Обмен данными с asyncio.Queue
  32. ChainMap.new_child() — добавление нового словаря
  33. Сортировка данных с лямбда-функциями
  34. Освоение Python
  35. Работа с модулем bisect
  36. Установка переменной среды в Python
  37. Python: отличительная особенность — отступы
  38. Python и Юникод: работа с цифрами
  39. Возвращение нескольких значений через кортеж или класс
  40. Поиск частых элементов в списке
  41. Печать календаря в Python
  42. Определение относительного пути
  43. Определение имен функций
  44. Проекты на Python
  45. Отладчик pdb: начало работы

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