Курс 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. Установка и использование TensorFlow
  2. Создание пар из последовательностей
  3. Основы слова
  4. Сортировка в Python
  5. Flask — веб-фреймворк Python
  6. GitHub в Telegram: подписка на уведомления
  7. Метод ior для битовых операций
  8. Использование defaultdict в Python
  9. Разделение строк в Python
  10. Аннотации типов в Python
  11. Замена элементов в списке с помощью генераторов списков
  12. Эффективная конкатенация строк в Python
  13. Работа с набором данных CIFAR10 в PyTorch
  14. Инверсия списка и строки
  15. Манипуляция формой массива в Numpy
  16. Метод pos в Python
  17. Обработка исключений в Python
  18. Применение функции к элементам списка
  19. Использование двоеточия в Python
  20. Python Метод Union Множеств
  21. Работа со строками в Python.
  22. Класс Counter() для подсчета элементов
  23. Управление пакетами с pip
  24. Обратный список чисел
  25. Форматирование строк в Python.
  26. Метод lt для сортировки объектов
  27. Введение в PyTorch
  28. Раздувающийся словарь в Python
  29. Поиск шаблона в начале строки
  30. Сортировка с помощью key
  31. Метод rsub для пользовательских чисел
  32. Оптимизация методов в Python 3.7
  33. Фильтрация элементов с помощью islice
  34. Использование super() в Python
  35. Блок else в Python
  36. Декодирование строк в Python
  37. Переворот последовательности
  38. Преобразование в float
  39. Переопределение метода __lshift__
  40. Логирование в Python
  41. Работа с контекстными переменными
  42. Декораторы в Python
  43. Тестирование функции сложения
  44. Распаковка значений в Python
  45. Непрерывная проверка в Python
  46. Округление чисел с помощью round
  47. Отображение HTML кода в Python
  48. Создание новых функций через partial

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