Что такое Словарь?
Словарь (Dictionary) — это структура данных, которая хранит информацию в виде пар «ключ — значение» (key-value). Каждое значение связано с уникальным ключом, и по этому ключу его можно очень быстро найти.
Проще говоря: словарь в программировании похож на обычный словарь. В обычном словаре вы находите слово (ключ) и читаете его значение. Так же устроена и телефонная книга: имя — это ключ, а номер телефона — значение.
Особенности словаря
- Ключи должны быть уникальными: в одном словаре не может быть двух одинаковых ключей. Если записать новое значение по существующему ключу, старое будет заменено.
- Значения могут быть любого типа: числа, строки, списки и даже другие словари.
- Ключ должен быть неизменяемым: в Python ключами обычно служат строки и числа, иногда кортежи (tuple). Список ключом быть не может, потому что его можно изменить.
- Порядок сохраняется: начиная с Python 3.7 элементы словаря хранятся в порядке их добавления.
Пример (Python)
Данные о студенте можно хранить в словаре так: student = {“imya”: "Мурад", “vozrast”: 18}. Здесь «imya» и «vozrast» — ключи, а «Мурад» и 18 — их значения.
Основные операции со словарём:
- Прочитать значение: student[“imya”] вернёт «Мурад».
- Добавить новый элемент: student[“klass”] = “11A” добавит в словарь новую пару «ключ — значение».
- Изменить значение: student[“vozrast”] = 19 заменит старое значение новым.
- Удалить элемент: командой del student[“klass”] эта пара удаляется.
- Безопасно прочитать: student.get(“telefon”) не вызовет ошибку, если такого ключа нет, а просто вернёт пустое значение (None).
Все элементы словаря можно перебрать по очереди с помощью цикла — например, чтобы вывести на экран каждый ключ и его значение.
Разница между словарём и списком
- В списке к элементам обращаются по порядковому номеру (индексу): первый элемент, второй элемент и т. д.
- В словаре к элементам обращаются по осмысленному имени — ключу: «imya», «vozrast», «klass».
Если важен смысл данных — например, все сведения об одном ученике, — удобнее словарь. Если важен порядок однотипных элементов — например, имена всех учеников, — удобнее список.
Почему словарь такой быстрый?
Внутри словарь построен на структуре, которая называется хеш-таблицей (hash table). Ключ с помощью специальной формулы напрямую «превращается» в место в памяти. Поэтому поиск по ключу происходит практически с одинаковой скоростью, независимо от того, 10 элементов в словаре или 10 миллионов. А чтобы найти элемент в списке, иногда приходится проверять весь список от начала до конца.
Словари в других языках
Эта структура есть практически во всех языках программирования, просто называется по-разному: в JavaScript — объект (object) или Map, в Java — HashMap, в C# — Dictionary. Самый популярный формат обмена данными в интернете — JSON — тоже основан на парах «ключ — значение» и внешне очень похож на словарь Python.
Преимущества словарей
- Очень быстрый поиск по ключу
- Хранение данных с понятными, осмысленными именами
- Удобный формат для сложных вложенных данных
- Простое преобразование в формат JSON
Словарь — одна из самых часто используемых структур среди типов данных Python и одно из базовых понятий, которое должен знать каждый программист.
Хотите применить эти знания на практике и получить реальные результаты? Начните обучение на курсе «IT и Компьютерная инженерия» и шаг за шагом приобретайте практические навыки. Подробнее о курсе — перейдите по ссылке: Курс «IT и Компьютерная инженерия».
