Генерирующие выражения
Создавайте ленивые последовательности с помощью генерирующих выражений для эффективного использования памяти.
«Генерирующие выражения» — бесплатный урок Python Academy на CoddyKit. Это урок 3 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Python Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Python Academy содержит 4 уроков всего.
Введение
Синтаксис генераторного выражения
gen = (x**2 for x in range(5))
print(gen) # generator object
print(next(gen)) # 0
print(next(gen)) # 1Эффективное использование памяти
total = sum(x**2 for x in range(100))
print(total)Использование генератора
gen = (x for x in range(3))
for val in gen:
print(val)
# gen is now exhaustedГенератор как аргумент функции
print(sum(x**2 for x in range(10)))
print(max(len(w) for w in ['cat', 'elephant', 'ant']))Объединение генераторов
evens = (x for x in range(100) if x % 2 == 0)
big_evens = (x for x in evens if x > 50)
print(list(big_evens))Преобразование в список или кортеж
gen = (x**2 for x in range(5))
print(list(gen))Генераторное выражение и списковое включение
import sys
lst = [x**2 for x in range(1000)]
gen = (x**2 for x in range(1000))
print(sys.getsizeof(lst), sys.getsizeof(gen))Бесконечные генераторы
import itertools
first10 = list(itertools.islice(itertools.count(0), 10))
print(first10)any() и all() с генераторами
nums = [1, 3, 7, 2]
print(any(x > 5 for x in nums))
print(all(x > 0 for x in nums))Конвейеры
data = range(1000)
filtered = (x for x in data if x % 7 == 0)
transformed = (x * 2 for x in filtered)
print(sum(transformed))Быстрая проверка
Повторение
Продолжайте обучение
Часто задаваемые вопросы
Урок «Генерирующие выражения» бесплатный?
Да — полный текст урока «Генерирующие выражения» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Python Academy, подпишись на CoddyKit PRO. Курс Python Academy содержит 4 уроков всего.
Чему я научусь в уроке «Генерирующие выражения»?
Создавайте ленивые последовательности с помощью генерирующих выражений для эффективного использования памяти. Ты практикуешь Python Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Python Academy?
Предыдущий опыт не требуется. Python Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 3 из 4.
Сколько времени занимает урок «Генерирующие выражения»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Python Academy?
Да. Каждый урок Python Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Генераторы списков
- Генераторы множеств и словарей
- Генерирующие выражения
- Ключевое слово yield