Словари в Python: dict с нуля — интерактивный курс (20 уроков)
Ключ → значение: структура, на которой стоит весь Python
Редакция Питоники

Словарь (dict) — структура «ключ → значение»: телефонная книга, настройки, счётчики, кэш, JSON из API. В Python словарь везде: и в данных, и под капотом самого языка. Курс учит пользоваться им по-взрослому: не только создавать и читать, но и считать, сортировать, вкладывать друг в друга и не бояться KeyError.
Двадцать уроков ведут от первого словаря до продвинутых приёмов: создание и доступ, get с умолчанием, добавление и удаление, перебор items/keys/values, проверки in, вложенные словари, сортировка по ключам и значениям, объединение через | и update, collections: Counter и defaultdict, dict comprehension, словарь и JSON — и финальный проект: частотный словарь текста.
Ничего устанавливать не нужно: dict — часть самого Python, весь код курса исполняется в браузерном интерпретаторе с проверкой вывода.
Чему научитесь
- Создавать словари и обращаться по ключу
- Читать безопасно: get с умолчанием против KeyError
- Добавлять, менять и удалять пары
- Перебирать items, keys и values
- Проверять ключ через in
- Разбирать вложенные словари
- Считать через Counter и defaultdict
- Сортировать по ключам и значениям
- Объединять словари через | и update
- Собрать частотный словарь текста
Для кого: Тем, кто знает базовый Python и хочет данные «ключ → значение» держать под полным контролем: настройки, счётчики, каталоги, JSON.
- Урок 1. Словарь в Python: ключ и значениеСловарь — структура «ключ — значение»: достаём номер телефона по имени из телефонной книги, сравниваем dict со списком на живых данных и заглядываем под капот — как Python находит значение по ключу.15 мин
- Урок 2. Создание словаря: фигурные скобки и dict()Три способа создать словарь: литерал в фигурных скобках, dict() из списка пар и пустой словарь под наполнение. Плюс разбор, какие ключи годятся и почему fromkeys с пустым списком — ловушка.15 мин
- Урок 3. Доступ по ключу и KeyErrorЧто происходит при доступе по несуществующему ключу: настоящий traceback, построчный разбор KeyError, отлов через try/except и случаи, когда падение — правильное поведение.15 мин
- Урок 4. get: безопасное чтение из словаряМетод get читает словарь без KeyError: без ключа вернёт None, со вторым аргументом — запасное значение. Сравниваем с квадратными скобками, разбираем арифметику с None и молчание get.15 мин
- Урок 5. Добавление и изменение пар в словареОдна операция на всё: d[ключ] = значение добавляет новую пару или заменяет старую. Плюс уникальность ключей, порядок вставки и счётчики, которые пишутся в одну строку.15 мин
- Урок 6. Удаление: del, pop и popitemЧетыре способа убрать данные из словаря: del молча удаляет пару, pop отдаёт значение, popitem снимает последнюю пару, clear чистит всё. Плюс разбор, почему удалять во время обхода нельзя.20 мин
- Урок 7. in: проверка ключа в словареОператор in отвечает на вопрос «есть ли такой ключ»: проверка перед доступом вместо KeyError, not in, грабли с проверкой значений и причина скорости поиска.20 мин
- Урок 8. Перебор словаря: keys, values и itemsТри представления словаря — keys, values, items: перебираем цены в цикле for, распаковываем пары в две переменные, считаем сумму и фильтруем дешёвые позиции.20 мин
- Урок 9. Вложенные словари: словарь внутри словаряКаталог товаров, где у каждого товара свой словарь с ценой и остатком: доступ по цепочке ключей, запись во вложенные поля, перебор и разбор того, почему два уровня вложенности — это предел.20 мин
- Урок 10. setdefault: значение при первом обращенииsetdefault возвращает значение по ключу, а если ключа нет — сначала записывает умолчание: группировка гостей по городам без if-проверок, счётчики и подводный камень с вычислением аргумента.20 мин
- Урок 11. Counter: словарь, который считает самCounter из collections — словарь, который считает сам: слова строки, буквы слова, повторения в списке. most_common отдаёт самых частых, арифметика счётчиков сравнивает две выборки.20 мин
- Урок 12. defaultdict: словарь с заводским умолчаниемdefaultdict сам создаёт значение при первом обращении: списки для группировки и нули для счётчиков — без setdefault и проверок. Плюс factory, рецепты по типам и грабли с лишними ключами.20 мин
- Урок 13. Сортировка словаря по ключам и значениямСловарь нельзя отсортировать на месте — но можно получить отсортированный: sorted по ключам, key=lambda по значениям, вторичный ключ кортежем, top-N срезом и dict(sorted(...)) обратно.20 мин
- Урок 14. Объединение словарей: update и оператор |Два словаря в один: update переписывает на месте, оператор | собирает новый словарь, слои настроек ставятся по приоритету, а при конфликте ключей побеждает правый.15 мин
- Урок 15. dict comprehension: словарь за строкуDict comprehension собирает словарь за одну строку: квадраты чисел, цены со скидкой, фильтр по условию, инверсия ключей и значений — и словарь из списка через enumerate.20 мин
- Урок 16. Словарь и JSON: json.loads и json.dumpsСловарь и JSON — два облика одних данных: json.loads читает строку в dict, json.dumps собирает строку из словаря, json.dump пишет в файл, а ensure_ascii=False бережёт кириллицу.20 мин
- Урок 17. Словарь как данные: разбор ответа APIОтвет API — это вложенный словарь: достаём поля по цепочке ключей, читаем безопасно через get с умолчанием, разбираем списки записей и собираем из ответа готовый отчёт.20 мин
- Урок 18. Ключи: что можно и что нельзяКлючом бывают строки, числа и кортежи, но не список: TypeError: unhashable type объясняется устройством словаря, а frozenset спасает, когда нужен набор.20 мин
- Урок 19. Сравнение словарей и копированиеСловари сравниваются по парам — порядок не важен, а копировать их нужно аккуратно: copy() делит вложенные значения, deepcopy копирует насквозь.20 мин
- Урок 20. Проект: частотный словарь текстаФинальный проект: частотный словарь текста — режем текст на слова, чистим, отбрасываем стоп-слова, считаем через Counter и выводим топ-5 ровными колонками.25 мин