Курс Python → Генераторы в Python

Генераторные выражения — это компактный способ создания итерируемых объектов в Python. Вместо того, чтобы создавать список целиком в памяти, генераторное выражение позволяет поочередно генерировать значения по мере необходимости. Это особенно полезно при работе с большими объемами данных, когда не хочется загружать все значения сразу.

Для использования генераторных выражений в Python используется синтаксис, похожий на список, но с круглыми скобками вместо квадратных. Например, выражение (x**2 for x in range(5)) создаст генератор, который будет возвращать квадраты чисел от 0 до 4 по запросу.

Для получения среза значений из генераторного выражения можно использовать функцию islice из модуля itertools. Она позволяет создать итератор, который будет возвращать только определенный диапазон значений из исходного итератора. Например, islice((x**2 for x in range(10)), 2, 6) вернет итератор, который будет возвращать квадраты чисел от 2 до 5.

from itertools import islice

gen_expr = (x**2 for x in range(10))
sliced_gen = islice(gen_expr, 2, 6)

for val in sliced_gen:
    print(val)

В данном примере мы создаем генераторное выражение для квадратов чисел от 0 до 9, затем используем функцию islice для получения среза значений от 2 до 5. После этого мы проходимся по полученному итератору и выводим значения на экран.

Твои коллеги будут рады, поделись в

Автор урока

Дмитрий Комаровский
Дмитрий Комаровский

Автоматизация процессов
в КраснодарБанки.ру

Другие уроки курса "Python"

  1. Хешируемые ключи в Python
  2. Преобразование чисел в восьмеричную строку
  3. Определение функций с необязательными аргументами
  4. Создание словаря в Python
  5. Эффективная конкатенация строк с использованием join()
  6. Удаление символа из строки
  7. Оператор * в Python
  8. Обратный список чисел
  9. Основы работы со списками
  10. Определение имен функций
  11. Работа с процессами в Python
  12. Форматирование данных с помощью pprint
  13. Использование super() в Python
  14. Хранение данных
  15. Форматирование данных с помощью pprint
  16. Изменение списка срезом
  17. Печать списка с помощью метода join
  18. Лямбда-функции для min/max
  19. Обход элементов в Python
  20. Исправление ошибки NameError
  21. Декораторы с аргументами
  22. Изменение IP-адреса в Python
  23. Создание лямбда-функций
  24. Навыки Python: строки, типы данных
  25. Лимиты на ресурсы Python
  26. Использование метода lower()
  27. Создание файла с проверкой ошибки
  28. Обработка исключений
  29. Логические операторы в Python
  30. Идентификатор объекта в Python
  31. Поиск элементов BeautifulSoup
  32. Логирование с Logzero
  33. Создание объекта timedelta
  34. Преобразование числа в восьмеричную строку
  35. Работа с YAML в Python
  36. Работа с CSV файлами в Python
  37. Генераторы в Python
  38. Работа с PosixPath() в Python
  39. Переопределение метода __floordiv__
  40. Выражения-генераторы в Python
  41. Комментарии в Python
  42. Удаление элементов из списка в Python
  43. Функция findall() для поиска вхождений строки
  44. Поиск всех индексов подстроки
  45. Обновление шаблона base.html

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