0Pricing
Competitive Programming Academy · Урок

Словари как таблицы поиска

Сопоставляйте ключи со значениями для быстрого доступа

«Словари как таблицы поиска» — бесплатный урок Competitive Programming Academy на CoddyKit. Это урок 2 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Competitive Programming Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Competitive Programming Academy содержит 4 уроков всего.

Идея словаря

Словарь сопоставляет ключи со значениями и позволяет получить сохранённый ответ по имени, не выполняя перебор. Это ваша таблица поиска для соревнований. 🔑

Доступ за постоянное время

Как и множество, словарь хеширует ключ, поэтому чтение и запись занимают примерно O(1). Благодаря этой скорости словарь заменяет медленный линейный поиск.

Создание словаря

Запишите пары ключ–значение внутри фигурных скобок или начните с пустой пары фигурных скобок. Каждый ключ указывает ровно на одно значение.

age = {'amy': 21, 'bob': 19}
empty = {}

Чтение по ключу

Получите значение, используя квадратные скобки вокруг ключа. Ключ действует подобно индексу, но может быть строкой, числом или кортежем.

print(age['amy'])

Сбой при отсутствии ключа

Чтение отсутствующего ключа в квадратных скобках вызывает KeyError. В соревновании это сразу превращается в вердикт об ошибке во время выполнения.

Безопасное чтение с помощью get

Используйте get, чтобы вернуть значение по умолчанию вместо сбоя, если ключ отсутствует. Это безопасный способ читать ключи, которые могут отсутствовать.

count = age.get('zoe', 0)

Вставка и обновление

Присваивание значения ключу либо добавляет его, либо перезаписывает старое значение. Один и тот же синтаксис обрабатывает и вставку, и обновление.

age['cara'] = 25
age['amy'] = 22

Проверяйте перед чтением

Проверяйте наличие с помощью in, прежде чем полагаться на ключ. Это защищает от KeyError и делает логику программы явной.

if 'bob' in age:
    print(age['bob'])

Сопоставление значений с позициями

Классический приём — сохранить индекс каждого значения, чтобы позже за один шаг узнать, где оно находилось. Это особенно полезно в задачах на поиск пар.

pos = {}
for i, v in enumerate(nums):
    pos[v] = i

Перебор пар

Перебирайте ключи и значения вместе с помощью элементов. Это понятнее, чем повторно искать каждое значение внутри цикла.

for name, a in age.items():
    print(name, a)

Ключи должны быть хешируемыми

Ключи словаря должны быть хешируемыми, поэтому используйте числа, строки или кортежи. Список не может быть ключом, а кортеж целых чисел может.

seen = {(0, 0): 'start'}

Быстрая проверка

Вы хотите прочитать ключ, который может не существовать, и не допустить сбоя.

Итоги

Словарь сопоставляет ключи со значениями и обеспечивает поиск за O(1). Используйте get для безопасного чтения, а индексы — чтобы превращать медленный перебор в мгновенный ответ. 🚀

Часто задаваемые вопросы

Урок «Словари как таблицы поиска» бесплатный?

Да — полный текст урока «Словари как таблицы поиска» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Competitive Programming Academy, подпишись на CoddyKit PRO. Курс Competitive Programming Academy содержит 4 уроков всего.

Чему я научусь в уроке «Словари как таблицы поиска»?

Сопоставляйте ключи со значениями для быстрого доступа Ты практикуешь Competitive Programming Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Competitive Programming Academy?

Предыдущий опыт не требуется. Competitive Programming Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 2 из 4.

Сколько времени занимает урок «Словари как таблицы поиска»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Competitive Programming Academy?

Да. Каждый урок Competitive Programming Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Множества для проверки принадлежности и удаления дублей
  2. Словари как таблицы поиска
  3. Counter и defaultdict в действии
  4. Группировка и распределение по корзинам с помощью map
← Назад к Competitive Programming Academy