Перейти к содержанию

412 уроков, 25 библиотек и челлендж «Что выведет код?» — бесплатно, код прямо в браузере

Начать обучение

Словари в Python: dict с нуля — интерактивный курс (20 уроков)

Ключ → значение: структура, на которой стоит весь Python

Редакция Питоники

20 уроков ≈ 10–14 часов Начальный Бесплатно и без регистрации
Словари: интерактивные уроки с запуском кода в браузере

Словарь (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.

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