Python: словари
Если «Python: словари» вызывает ступор — это нормально: тема собрана из простых идей. Покажем их по порядку: теория, пример, разбор задания и типичные ошибки.
Что такое словарь в Python
Когда программа хранит оценки, названия предметов или результаты вычислений, обычного списка часто недостаточно: нужно быстро находить значение по понятному названию. Словарь Python решает эту задачу. Разобравшись с парами «ключ — значение», ты сможешь писать аккуратные программы, обрабатывать данные и увереннее выполнять задания по информатике на ОГЭ и ЕГЭ. В этой статье пройдём тему от создания словаря до частых ошибок.
Словарь, или dict, хранит данные в виде пар. Ключ помогает найти значение. Например, ключом может быть название предмета, а значением — оценка. Словари записывают в фигурных скобках, пары разделяют запятыми, а между ключом и значением ставят двоеточие.
grades = {"математика": 5, "физика": 4}
print(grades["математика"])
Результат: 5
Ключи должны быть уникальными: у одного ключа не может одновременно быть два разных значения. Значениями могут быть числа, строки, списки, логические значения и даже другие словари.
Создание и изменение словаря
Словарь можно создать сразу с данными или оставить пустым. Пустой словарь обозначается как {}. Новую пару добавляют обращением по ключу, а существующее значение заменяют таким же способом.
\( student = {} \)
student["имя"] = "Оля"
student["класс"] = 9
student["класс"] = 10
print(student)
После выполнения в словаре останутся имя Оля и класс 10. Операция присваивания не добавляет второе значение к старому, а заменяет его. Удалить пару можно командой del, если ключ точно существует.
del student["класс"]
print(len(student))
Функция len() показывает количество пар. Проверить наличие ключа безопасно можно с помощью оператора in.
if "имя" in student:
print("Данные найдены")
Перед изменением словаря мысленно ответь: ключ уже существует или его нужно создать? Это сразу помогает понять, будет добавление или замена.
Как получать значения без ошибки
Если обратиться к отсутствующему ключу через квадратные скобки, Python остановит программу с ошибкой KeyError. Поэтому, когда ключ может отсутствовать, удобнее использовать метод get(). Он возвращает значение, а при отсутствии ключа — None или указанное тобой запасное значение.
prices = {"тетрадь": 80, "ручка": 45}
print(prices.get("линейка", 0))
Результат: 0
Метод keys() возвращает ключи, values() — значения, а items() — пары. Эти методы особенно полезны в циклах. В современных версиях Python элементы словаря сохраняют порядок добавления, но в задачах лучше опираться на смысл данных, а не на случайное расположение.
for subject, mark in grades.items():
print(subject, mark)
Если нужно получить только названия предметов, используй for subject in grades. Если нужны только оценки, перебирай grades.values(). Для практики можно решить несколько коротких задач в бесплатном личном кабинете и проверить, насколько уверенно ты обращаешься к ключам.
Разобранный пример: подсчёт частот
Рассмотрим типичную задачу: дана строка, нужно посчитать, сколько раз встречается каждый символ. Словарь будет хранить символ как ключ, а количество повторений — как значение. Для каждого символа проверяем, был ли он раньше.
text = "банан"
\( count = {} \)
for symbol in text:
if symbol not in count:
\( count[symbol] = 0 \)
\( count[symbol] += 1 \)
print(count)
Результат: {"б": 1, "а": 2, "н": 2}
Разберём ход выполнения. Сначала встречается «б»: такого ключа нет, поэтому программа создаёт пару «б»: 0, затем увеличивает значение до 1. Для первой «а» происходит то же самое. Когда «а» встречается второй раз, ключ уже существует, и его значение просто увеличивается с 1 до 2. Аналогично обрабатывается «н».
Короткая запись использует get(): count[symbol] = count.get(symbol, 0) + 1. Она делает ту же работу, но требует внимательного чтения.
В математических задачах похожий подход применяют для подсчёта повторяющихся чисел, координат или результатов измерений.
Типичные ошибки и полезные методы
Первая ошибка — путать ключ и значение. В записи {"x": 7} ключом является строка "x", а значением — число 7. Вторая — использовать изменяемый объект, например список, как ключ: такой код вызовет ошибку. Строки, числа и кортежи обычно подходят для ключей.
Третья ошибка — менять словарь прямо во время перебора его ключей. Это может привести к ошибке изменения размера словаря. Если нужно удалить элементы, сначала создай отдельный список ключей.
| Задача | Инструмент | Пример |
|---|---|---|
| Получить значение | квадратные скобки | d["x"] |
| Получить безопасно | get() | d.get("x", 0) |
| Удалить пару | del | del d["x"] |
| Перебрать пары | items() | for k, v in d.items() |
Запись d["новый"] при чтении не создаёт ключ. Она только ищет его. Для добавления нужно присваивание, а для безопасного чтения — get().
Что запомнить
Словарь хранит пары «ключ — значение» и подходит, когда данные нужно находить по имени, а не по позиции. Создание и изменение выполняются через d[key] = value. Получить значение можно через скобки или безопаснее через get(). Методы keys(), values() и items() помогают перебирать содержимое, а in проверяет наличие ключа.
Для экзамена важно уверенно читать вложенные обращения, например data["ученик"]["оценка"], и понимать, когда значение увеличивается, а когда заменяется. Не заучивай команды изолированно: составляй маленькие словари и прослеживай каждое изменение.
Следующий шаг — зарегистрируйся и реши 5 заданий бесплатно в личном кабинете. Если готовишься к экзамену, можно отдельно посмотреть подборки по ОГЭ или ЕГЭ.
Как закрепить тему после разбора?
Реши пять задач: создай словарь, измени значение, проверь ключ через in, используй get() и выполни подсчёт частот. После каждого решения объясни словами, какая пара добавилась или изменилась.
Можно ли использовать список как ключ?
Нет, список изменяемый и не подходит для ключа. Используй строку, число или кортеж, элементы которого сами подходят для ключей.
Чем словарь отличается от списка?
В списке элементы находят по числовому индексу, а в словаре — по ключу. Словарь удобнее для данных с понятными названиями.
Что произойдёт при повторной записи ключа?
Старое значение будет заменено новым. Количество пар при этом не увеличится.
Закрепить тему на практике
Теория без практики забывается за неделю. В личном кабинете Просто Урок — задания именно по этой теме с проверкой каждого шага. Регистрация бесплатная.