Быстро создавайте массивы с включениями
Читайте и формируйте input в одной строке
«Быстро создавайте массивы с включениями» — бесплатный урок Competitive Programming Academy на CoddyKit. Это урок 2 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Competitive Programming Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Competitive Programming Academy содержит 4 уроков всего.
Создавайте списки в одну строку
Генератор списка создаёт список из цикла в одном выражении. Это короче, быстрее и является стандартным приёмом на соревнованиях для преобразования данных.
squares = [i * i for i in range(5)]Базовая форма
Шаблон выглядит так: [expr for item in iterable]. Выражение слева выполняется один раз для каждого элемента, который выдаёт цикл.
doubles = [x * 2 for x in nums]Чтение строки целых чисел
Самая распространённая строка на соревнованиях: разделите входные данные и преобразуйте каждый токен. Этот приём за один понятный шаг преобразует текст в целые числа.
nums = [int(x) for x in input().split()]map() выполняет ту же работу
map(int, ...) применяет int к каждому токену. Оберните результат в list(...), чтобы материализовать значения для многократного использования.
nums = list(map(int, input().split()))Фильтрация при построении
Добавьте в конце условие if, чтобы оставить только подходящие элементы. Здесь при построении остаются только чётные числа.
evens = [x for x in nums if x % 2 == 0]Преобразование и фильтрация вместе
Можно одновременно преобразовывать и фильтровать: изменяйте сохраняемые элементы слева, а отбирайте их с помощью завершающего if.
out = [x * x for x in nums if x > 0]Создание массива, заполненного нулями
Нужен массив фиксированного размера? [0] * n мгновенно создаёт n нулей — идеально для счётчиков и таблиц DP.
dp = [0] * nОстерегайтесь повторяющихся вложенных списков
Для двумерной сетки используйте включение. [[0] * c for _ in range(r)] создаёт независимые строки, а [[0] * c] * r использует одну общую строку.
grid = [[0] * c for _ in range(r)]Индексация с enumerate
Если нужны ещё и позиции, используйте в цикле enumerate: на каждом шаге Вы получаете и индекс, и значение.
pairs = [(i, v) for i, v in enumerate(nums)]Чтение целой матрицы
Объедините чтение и цикл, чтобы сразу получить r строк чисел и построить всю сетку всего в двух коротких строках.
grid = [list(map(int, input().split()))
for _ in range(r)]Варианты для множеств и словарей
Такой же синтаксис создаёт множества и словари: используйте фигурные скобки. {x for x in nums} удаляет дубликаты, а пары key:value создают отображение.
seen = {x for x in nums}Быстрая проверка
Выберите конструкцию, которая считывает строку целых чисел, разделённых пробелами.
Повторение: быстрое построение
Теперь Вы умеете в одной строке создавать, фильтровать и изменять форму массивов, а также быстро считывать целые матрицы. Включения делают разбор ввода коротким и защищённым от ошибок. 💡
Часто задаваемые вопросы
Урок «Быстро создавайте массивы с включениями» бесплатный?
Да — полный текст урока «Быстро создавайте массивы с включениями» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Competitive Programming Academy, подпишись на CoddyKit PRO. Курс Competitive Programming Academy содержит 4 уроков всего.
Чему я научусь в уроке «Быстро создавайте массивы с включениями»?
Читайте и формируйте input в одной строке Ты практикуешь Competitive Programming Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Competitive Programming Academy?
Предыдущий опыт не требуется. Competitive Programming Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 2 из 4.
Сколько времени занимает урок «Быстро создавайте массивы с включениями»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Competitive Programming Academy?
Да. Каждый урок Competitive Programming Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Списки, индексы и срезы для CP
- Быстро создавайте массивы с включениями
- Min, Max, Sum и накопительные итоги
- Находите индекс, а не только значение