Словари в Python для ЕГЭ: как структура «ключ-значение» спасает баллы
27
Как перестать перебирать списки вручную и начать решать задачи

** изображение создано или обработано с помощью ИИ.
Я работаю с задачами ЕГЭ по информатике несколько лет. Помню свой первый словарь в Python — тогда мне показалось, что я почти стал хакером. Спойлер: нет. Но решать задачи действительно стало проще.
Что такое? Это обычная пара. Есть вопрос (ключ) — есть ответ (значение). Есть фамилия ученика — есть его балл. Есть число — есть частота его появления. В Python такую структуру чаще всего реализует словарь (dict). В других языках она может называться map, hash map, associative array.
Для ЕГЭ важно не запомнить термин, а изменить подход к данным. Вы храните информацию так, чтобы быстро её находить. Не перебираете весь список каждый раз. Не заставляете компьютер и себя делать лишнюю работу. На экзамене нервы и так на пределе.
Образ для понимания. Шкаф с подписанными ящиками. Наклейка на ящике — это ключ. Содержимое ящика — значение. Вы не открываете все ящики подряд, сразу идёте к нужной наклейке. Никакой магии, только порядок.
Где эта идея прячется в заданиях ЕГЭ

** изображение создано или обработано с помощью ИИ.
В заданиях ЕГЭ редко встречается прямая формулировка «используйте словарь». Экзамен даёт массив, файл, строки или пары чисел — и проверяет, заметите ли вы подходящую структуру данных.
Когда помогает:
- Подсчёт частоты. Сколько раз встречается число, символ или остаток от деления. Ключ — сам элемент, значение — счётчик.
- Группировка. Нужно собрать данные по классам, датам, кодам или другим категориям. Ключ — категория, значение — сумма, максимум, минимум или список элементов.
- Быстрая проверка наличия. Нужно запомнить, какие объекты уже встречались. Достаточно хранить их как ключи словаря. Проверка if x in dict выполняется быстро, в отличие от поиска в списке.
Почему не всегда подходит список? Если ключи — строки, большие числа или редкие значения, поиск в списке может работать долго. Словарь в таких случаях эффективнее и код получается короче.
Можно ли решить списком? Можно. Но не всегда удобно. Словарь даёт прямой доступ к значению по ключу без перебора. Голова на экзамене нужна для других задач, а не для лишнего поиска.
Как думать про ключи и значения

** изображение создано или обработано с помощью ИИ.
Начинайте не с кода. Сначала спросите себя: «Что я ищу быстро?» Ответ на этот вопрос почти всегда становится ключом. Затем спросите: «Что мне нужно помнить об этом?» Это уже значение.
Примеры. Нужно посчитать частоту чисел → ключ: само число, значение: количество появлений. Нужно найти максимальную сумму по группам → ключ: номер группы, значение: текущая лучшая сумма. Всё просто, пока вы не начинаете усложнять.
Частая ошибка. Ученик делает ключом то, что постоянно меняется. Код превращается в запутанную конструкцию. Ключ должен устойчиво обозначать объект или признак. Не используйте в качестве ключа данные, которые обновляются каждый шаг.
Каким может быть значение. На ЕГЭ чаще всего хватает числа: счётчик, сумма, максимум, минимум. Это рабочая четвёрка. Четыре вопроса, которые держат структуру под контролем:
- Ключ: «Где искать?»
- Значение: «Что хранить?»
- Проверка ключа: «Встречалось ли это уже?»
- Обновление значения: «Что изменилось сейчас?»
Если держать эти четыре мысли, код становится короче. А короткий код легче проверить на экзамене. Это почти суперсила.
Мини-шаблоны на Python, которые реально спасают

** изображение создано или обработано с помощью ИИ.
В Python словарь (dict) пишется почти так же естественно, будто мысль. Создали пустой словарь, прошли по данным, обновили значение. Главное — не перепутать синтаксис в стрессовой ситуации.
Подсчёт частот — стандартная схема. Встретили число x. Если x ещё нет в словаре — создаём запись (например, со значением 0). Затем увеличиваем счётчик. Можно писать через проверку if x in dict — это понятно и надёжно. Через несколько строк кода у вас готовая таблица частот. Без лишних движений.
Метод get — возвращает значение по ключу. Если ключа нет, можно указать значение по умолчанию (для частот обычно 0). Обновление становится компактнее, но не гонитесь за красотой сразу. Сначала пишите понятно, потом сокращайте.
Я сам раньше любил «умные» однострочники. А через день смотрел на них и думал: «Кто это написал и почему он против меня?»
Максимум по группе.
Проверяете, есть ли ключ. Если нет — записываете первое значение. Если есть — сравниваете с текущим и оставляете большее. Так вы не теряете данные и не делаете лишний проход.
Перед экзаменом полезно набить руку на реальных задачах. Если нужна система, а не хаос — посмотрите курс подготовки к ЕГЭ по информатике в онлайн-формате. Курс даёт структуру, расписание и обратную связь. Вы перестаёте гадать, как применять словари, а начинаете уверенно решать задачи.
Типичные ошибки, из-за которых словарь мстит

** изображение создано или обработано с помощью ИИ.
Первая ошибка — забыть создать ключ. Программа пытается увеличить счётчик, которого нет. Python честно выдаёт ошибку KeyError. На тренировке это поправимо, на экзамене — неприятно.
Вторая ошибка — перепутать ключ и значение. Например, хранить балл как ключ, когда искать нужно по фамилии ученика. Данные вроде бы есть, но задача не решается. Это как карта города, положенная вверх ногами.
Третья ошибка — изменять словарь во время его обхода. Если удалять ключи прямо в цикле for key in dict, возникнет ошибка. Лучше собрать список отдельно (например, list(dict.keys())), а потом спокойно по нему пройти.
Четвёртая ошибка — использовать словарь там, где достаточно множества (set). Если нужно только знать, встречался ли объект, а дополнительная информация не требуется, set работает быстрее и проще. Не ставьте диван там, где нужен табурет.
Пятая ошибка — не проверять крайние случаи. Пустые входные данные, один элемент, одинаковые значения, отрицательные числа. Эти маленькие зверьки любят выскакивать в самый неподходящий момент.
Короткий чек-лист перед сдачей:
- Проверьте, что ключ создаётся до того, как вы пытаетесь его обновить.
- Называйте переменные по смыслу (не всегда одной буквой).
- Протестируйте код на маленьком примере руками.
- Сравните ответ программы с ручным расчётом.
Я говорю ученикам: словарь не злой. Он просто буквальный. Что вы попросили — то и сделал. Даже если попросили ерунду.
Как тренироваться, чтобы навык прилип

** изображение создано или обработано с помощью ИИ.
Не начинайте с больших файлов. Возьмите пять чисел. Составьте таблицу частот вручную, на бумаге. Затем напишите код. Сравните результаты. Так мозг связывает идею и программу напрямую.
Следующий шаг — придумать ключ самостоятельно. Например, считать остатки от деления чисел на 3. Ключ — остаток (0, 1 или 2). Значение — количество таких чисел. Это полезно для задач, где важны делимость и пары.
Потом попробуйте хранить не счётчик, а максимум. Даны пары: группа и балл. Нужно найти лучший балл в каждой группе. Ключ — номер группы, значение — текущий максимум. Это уже похоже на реальную обработку данных.
Дальше — аккуратно усложняйте. Храните сумму и количество. Тогда можно вычислить среднее. Значением станет пара чисел (сумма, количество). Выглядит серьёзно, но внутри всё та же полка с наклейкой.
План на вечер (без героизма, но с пользой):
- Подсчитайте частоты чисел в коротком списке (например, [2, 5, 2, 3, 2, 5]).
- Найдите самый частый элемент.
- Сгруппируйте пары по первому числу (например, [(1,10), (2,20), (1,15)] → для ключа 1 значения 10 и 15).
- Найдите максимум для каждого ключа.
- Проверьте три крайних случая: пустой список, один элемент, все одинаковые значения.
- Последний вопрос вам. Когда видите задачу с повторяющимися элементами, что будет ключом? А что станет значением?
Если ответ пришёл быстро — вы уже близки. Осталось закрепить практикой.
Хочешь начать готовиться, но остались вопросы?
Заполни форму, и мы подробно объясним, как устроена подготовка к ЕГЭ и ОГЭ в ЕГЭLAND
